Sekarang pertanyaannya bagaimana gambar kita bisa diResize menjadi beberapa ukuran yang berbeda? tentu saja tidak mungkin ada seorang operator dibelakang layar yang satu per satu merubah gambar pengguna setiap saat ^^; semuanya dilakukan dengan program.
Pada PHP ada library yang bernama imageGD dan imageGD2. singkatnya library tersebut berfungsi untuk menciptakan atau memanipulasi file image/gambar. perbedaan GD dan GD2 adalah bahwa GD merupakan library lama bawaan dari bahasa C sedangkan GD2 merupakan versi yang sudah disesuaikan untuk PHP. disini kita akan menggunakan GD2.
Untuk memastikan bahwa library/extension GD2 sudah diaktifkan, lakukan langkah2 dibawah ini :
- Buka file php.ini pada root folder PHP.
- cari text extension=php_gd2.dll.
- Jika terdapat karakter titik koma ";" diawal baris, berarti extension ini masih belum diaktifkan, untuk mengaktifkannya, hapus karakter tersebut.
- Setelah dihapus, restart web server
form.html
<html> <head> <title>Image Resize</title> </head> <body> <form action="image_resize.php" method="post" enctype="multipart/form-data"> Masukan gambar : <input type="file" name="gambar" /> <input type="submit" value="Kirim" /> </form> </body> </html>
image_resize.php
<? function imageResize( $dir /* contoh : "folder_saya/" */, $img_name /* contoh : "myimage" */, $image /* object image, contoh : $_FILES['img'] */, $lebar /* lebar proporsional maximum, contoh : 120 */, $panjang /* lebar proporsional maximum, contoh : 220 */, $save_ori = true /* kasih TRUE jika ingin menyimpan ukuran file asli */ ) { $dir .= "/"; //Check tipe file, jika file bukan image jpg, png, gif maka function ini akan dihentikan if (!($ext = getImageType($image))) { return FALSE; } $ext = "." . $ext; //direktori gambar $vdir_upload = $dir; $vfile_upload = $vdir_upload . $img_name; $ori = $vdir_upload . "ori-" . $img_name . $ext; //Simpan gambar dalam ukuran sebenarnya copy($image["tmp_name"], $ori); //identitas file asli if ($ext == ".jpg") { $im_src = imagecreatefromjpeg($ori); }elseif ($ext == ".gif") { $im_src = imagecreatefromgif($ori); }elseif ($ext == ".png") { $im_src = imagecreatefrompng($ori); } $src_width = imageSX($im_src); $src_height = imageSY($im_src); //Simpan dalam versi thumbnail //menentukan maksimum lebar dan tinggi gambar tergantung lebih besar mana antar lebar dan tinggi gambar if ($src_width > $src_height) { $dst_width = ($lebar >= $src_width ? $src_width : $lebar); $dst_height = ($dst_width/$src_width)*$src_height; }else{ $dst_height = ($panjang >= $src_width ? $src_width : $panjang); $dst_width = ($dst_height/$src_height)*$src_width; } //proses perubahan ukuran $im = imagecreatetruecolor($dst_width,$dst_height); imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height); //Simpan gambar if ($ext == ".jpg") { imagejpeg($im, $vdir_upload . $img_name . $ext); }elseif ($ext == ".gif") { imagegif($im, $vdir_upload . $img_name . $ext); }elseif ($ext == ".png") { imagepng($im, $vdir_upload . $img_name . $ext); } imagedestroy($im_src); imagedestroy($im); if (!$save_ori) { unlink ($ori); } return TRUE; } //fungsi untuk mengecek jenis gambar function getImageType ($image) { if ($image['type'] == "image/jpeg" || $image['type'] == "image/pjpeg") { return "jpg"; }elseif ($image['type'] == "image/gif") { return "gif"; }elseif ($image['type'] == "image/png" || $image['type'] == "image/x-png") { return "png"; }else{ return FALSE; } } // Proses pemanggilan fungsi resizeImage dan menampilkannya ke layar browser if (isset($_FILES['gambar'])) { // membuat folder img (antisipasi jika folder img belum dibuat) @mkdir("img"); // membuat gambar dengan ukuran lebar dan tinggi maksumum 75px imageResize("img", "img_75", $_FILES['gambar'], 75, 75, true); // membuat gambar dengan ukuran lebar dan tinggi maksumum 300px imageResize("img", "img_200", $_FILES['gambar'], 200, 200, false); // membuat gambar dengan ukuran lebar dan tinggi maksumum 600px imageResize("img", "img_300", $_FILES['gambar'], 300, 300, false); $ext = getImageType($_FILES['gambar']); ?> <img src="img/img_75.<?=$ext?>" /> <img src="img/img_200.<?=$ext?>" /> <img src="img/img_300.<?=$ext?>" /> <img src="img/ori-img_75.<?=$ext?>" /> <? }else{ echo "File gagal terkirim ke server..."; } ?>
untuk mencobanya, buka form.html pada browser dengan memasukan URL misalnya http://localhost/testimageresize/form.html. Lalu masukan gambar yang ingin diResize pada input file dan submit. Maka yang akan tampil pada layar browser adalah 3 gambar yang sudah diResize dan 1 gambar dengan ukuran originalnya seperti dibawah ini :
Mohon maaf jika gambarnya kurang menarik, hhe.
Selamat mencoba :)
No comments:
Post a Comment