Senin, 13 Oktober 2008

maiN-maiN nyOk...

Kadang-kadang membuat yang tak serius itu perlu. Ide ini juga tidak orisinil dari saya. Sudah ada yang berbuat sebelumnya. Jadi jangan salahkan saya jika menimbulkan masalah :) Untuk menampilkan gambar/image dalam halaman HTML tentu digunakan tag yang merujuk ke sebuah file gambar. Bagaimana kalau kita menampilkan sebuah gambar dalam halaman HTML tanpa harus merujuk ke file gambar tersebut. Mungkinkah menampilkan gambar hanya dengan tag HTML yang ada. Jelas jawabnya mungkin. Karena memang sudah ada yang kurang kerjaan melakukannya.

Idenya sangat mudah. Buat sebuah tabel. Atur agar tinggi dan lebar sebuah td adalah 1 pixel x 1 pixel. Ini bisa dengan CSS. Lalu susunlah td ini menjadi sebuah gambar. Satu buah td adalah untuk satu pixel gambar. Lalu warna pixel ditentukan dengan attribut bgcolor yang ada dalam td. Sederhana sekali. Hanya akibatnya yang agak menakutkan. Kalau sebuah gambar dalam format JPG berukuran 15 KB, dengan cara ini ukurannya bisa membengkak sebanyak lebih 10 kali lipat! Namanya juga main-main.

Terus caranya membuat gambar dengan cara ini? Saya menggunakan script PHP sederhana. Baca setiap pixel yang ada dalam file gambar. Lalu konversi setiap pixel tersebut ke sebuah . Dengan nilai #xxxxxx sesuai dengan warna pixel yang dibaca dari gambar. Selesai.

Script PHP untuk konversi di atas sederhananya seperti berikut

\n";
$j = 0;
for ($y = 0; $y < $tinggi; $y++) { $tabel .= "";
for ($x = 0; $x < $lebar; $x++) { $warna = imagecolorat($img2,$x,$y); $r = ($warna >> 16) & 0xFF;
$g = ($warna >> 8) & 0xFF;
$b = $warna & 0xFF;
$rh = str_pad(dechex($r),2,"0",STR_PAD_LEFT);
$gh = str_pad(dechex($g),2,"0",STR_PAD_LEFT);
$bh = str_pad(dechex($b),2,"0",STR_PAD_LEFT);
$wh = "#" . $rh . $gh . $bh;
$tabel .= "";
}
$tabel .= "\n";
}
$tabel .= "\n";

echo $tabel;

?>

Ini contohnya (17 KB zip) yang sudah dalam bentuk sebuah file HTML. Contoh tersebut sudah ditambahi dengan ornamen lain agar tambah menarik.

0 komentar:

Posting Komentar