Thumbnail adalah versi kecil dari sebuah gambar, sehingga waktu download bisa lebih cepat. Kita akan memuat thumbnail secara otomatis dengan menggunakan GD Library 2, GD Library 2 menghasilkan thumbnail yang lebih bagus juga file yang lebih kecil. Script ini hanya untuk file JPG.
Untuk itu kita buat dulu 2 folder: “images” dan “thumbs”. Folder images untuk menyimpan gambar asli yang kita upload, dan folder thumbs untuk menyimpan thumbnail gambar.
thumbnail.php$thumb_on: masukkan “x” untuk lebar atau “y” untuk tinggi thumbnail. Jika memasukkan “x” maka nilai dari $thumb_size akan dijadikan lebar thumbnail.<?
function make_thumb($img_src, $img_th)
{
$thumb_on = 'x';
$thumb_size = 150;
$quality = 50;$img_size = GetImageSize ($img_src);
$img_in = ImageCreateFromJPEG ($img_src);if ($thumb_on == 'x')
{
$img_y = ($thumb_size/$img_size[0]) * $img_size[1];
$img_x = $thumb_size;
}
else
{
$img_x = ($thumb_size/$img_size[1]) * $img_size[0];
$img_y = $thumb_size;
}$img_out = ImageCreateTrueColor($img_x, $img_y);
ImageJPEG ($img_out, $img_th, $quality);
ImageCopyResampled ($img_out, $img_in, 0, 0, 0, 0, $img_x, $img_y, $img_size[0], $img_size[1]);
ImageDestroy ($img_out);
ImageDestroy ($img_in);
}if (isset ($_FILES['image']['name']))
make_thumb ($src, $th);
{
$fn = $_FILES['image']['name'];
$src = 'images/'.$fn;
$th = 'thumbs/'.$fn;
if (!@move_uploaded_file ($_FILES['image']['tmp_name'], $src)) die ('Gambar tidak bisa di upload');
echo "Selesai!";
}
?>
<form enctype="multipart/form-data" action="thumbnail.php" method="post">
Gambar yang akan dibuat thumbnail: <input name="image" type="file"><input type="submit" value="Thumbnail">
</form>
$thumb_size: ukuran pixel thumbnail.
$quality: kualitas thumbnail, “0” untuk terjelek dan “100” untuk kualitas terbaik.
Menghitung ukuran gambar asli:
$img_size = GetImageSize ($img_src);
$img_in = ImageCreateFromJPEG ($img_src);
Dari setting diatas dihitung ukuran thumbnail:
if ($thumb_on == 'x')
{
$img_y = ($thumb_size/$img_size[0]) * $img_size[1];
$img_x = $thumb_size;
}else
{
$img_x = ($thumb_size/$img_size[1]) * $img_size[0];
$img_y = $thumb_size;
}
Membuat thumbnail dengan ImageCopyResampled dari GD Library 2 yang menghasilkan gambar lebih bagus:
$img_out = ImageCreateTrueColor($img_x, $img_y);
ImageJPEG ($img_out, $img_th, $quality);
ImageCopyResampled ($img_out, $img_in, 0, 0, 0, 0, $img_x, $img_y, $img_size[0], $img_size[1]);
ImageDestroy ($img_out);
ImageDestroy ($img_in);
Upload file gambar dan memanggil make_thumb($src, $th):
$src = lokasi gambar asli
$th = lokasi thumbnail
if (isset ($_FILES['image']['name']))
{
$fn = $_FILES['image']['name'];
$src = 'images/'.$fn;
$th = 'thumbs/'.$fn;
if (!@move_uploaded_file ($_FILES['image']['tmp_name'], $src)) die ('Gambar tidak bisa di upload');make_thumb ($src, $th);
echo "Selesai!";
}