Monday 26 May 2008

Manipulasi image part 4 ~ Final


Bagian terakhir ini, kita akan membuat aplikasi php yang akan mengubah dimensi dari suatu gambar. Seperti yang sebelumnya kita membuat 2 file php, yaitu file masukan/input dan file buat pengolahannya. Ok, kita langsung aja ke code-nya

dimension.php
<div style="width: 770px; text-align: left;">
<h1>Dimensi yang anda inginkan</h1>
<p>
<form action="dimensiCODE.php" enctype="multipart/form-data" method="POST" target="_blank">
Gambar: <input type="file" name="source" value="cari" size="40"><br>
Ukuran Baru: lebar= <input type="text" name="lebar" value="320" size="4" maxlength="4">
Tinggi= <input type="text" name="tinggi" value="240" size="4" maxlength="4"><br>
<input type="submit" value="Proses">
</form>
</p>
</div>

gimana? gag perlu dijelasin lagi to :-) sama kok dengan yang sebelumnya. Kita langsung yang file kedua aja. Aku kasih penjelasan langsung di kode programnya aja ya... lebih simple. Maklum, upload lewat hape sih jadi karakternya terbatas.

dimensiCODE.php
<?php
// memberitahu php browser kalau kita akan membuat file gambar dengan tipe jpg/jpeg
header("Content-type:image/jpeg");
$image = @imagecreatefromjpeg("$source")
// ini akan jalan jika ternyata dukungan untuk library GD tidak ada
or die("Tidak ada dukungan library GD!!!");

// dimensi source, yaitu gambar yang kita kirim dari dimension.php akan disimpan di 2 variabel ini.
$lebar_src=imagesX($image);
$tinggi_src=imagesY($image);

// dimensi yg diingkan, ini dibaca dari input integer yang kita berikan di dimension.php.
$lebar_dst = $lebar;
$tinggi_dst = $tinggi;

/*
proses perubahan dimensi akan berlangsung disini.
dengan imagecreatetruecolor kita akan membuat gambar berwarna dengan dimensi yang telah kita tetap kan sebelumnya. parameter dari imagecreatetruecolor (int x_size, int y_size). Kemudian di imagecopyresampled() dengan urutan parameter adalah ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w,int dst_h, int src_w, int src_h).
Dengan menggunakan imagecreatetruecolor() dan imagecopyresampled() maka kita bisa menentukan kualitas dari hasil gambar pada imagejpeg(resource image,[string filename],[int quality])
*/
$image_jadi = imagecreatetruecolor ($lebar_dst,$tinggi_dst);
imagecopyresampled($image_jadi,$image,0,0,0,0,$lebar_dst,$tinggi_dst,$lebar_src,$tinggi_src);
imagejpeg($image_jadi,"",60);
imagedestroy($image);
imagedestroy($image_jadi);
?>

Silahkan mencoba, jika server di kampus saya tidak sedang down anda bisa mencoba di http://lab.akakom.org/~asyhadi1/image. Hanya saja beberapa aplikasi tidak bisa dijalankan, dikarenakan di kampus masih menggunakan PHP versi 4.3.0, sedangkan saya menggunakan PHP 5.2.4. Semisal imagecopyresampled(), setahu saya baru ada pada PHP versi 5.

No comments: