2
2006
Imagine… no image on the web
Image pertama kali muncul di halaman web pada tahun 1992, kata Wiki. Image, sejak kemunculannya, mengubah halaman web yang dulunya mirip kamus menjadi seperti sebuah majalah. Penuh dengan foto-foto dan ilustrasi yang mampu menyajikan lebih banyak informasi, serta penataan gambar-gambar yang memperkuat desain. Halaman web menjadi penuh makna. Because a picture tells thousand words.
Namun peran image yang paling memenuhi jagat Internet adalah ia dapat menyajikan foto-foto yang dapat kita nikmati dan dapat kita berbagi dengan yang lain. Maka bertebaranlah galeri image, dengan beragam klasifikasi dan tujuan, ada yang berupa koleksi clip-art, wallpaper, direktori foto/image, ada yang berupa album, dan ada juga yang berupa blog. Tahun 2000 muncul Cindy Margolis yang fotonya paling banyak didownload, sampai 70.000 kali dalam 24 jam, rekornya tercatat di guennessbook untuk kategori “Most Downloaded Woman”. Apakah anda termasuk yang mendownloadnya?
Image adalah elemen halaman web yang sangat penting, PHP pun dengan sepenuh hati mendukungnya. PHP bisa menciptakan image on the fly. Lihatlah fungsi-fungsi PHP untuk image, cukup lengkap, bisa untuk membuat, mengedit, memanipulasi, semuanya ada, karenanya wajar ada Image Editor berbasis PHP, jika anda tertarik ikuti link ini, atau yang saya pasang di CMS saya, Image Manager karya Wen Zhuo.
Hal yang paling banyak menjadi perhatian di kalangan web master adalah ukuran image. Image mempunyai ukuran visual (pixel) yang besar sehingga bisa menghabisi halaman web, perlu untuk memperkecil ukuran gambar. Selain itu, image mempunyai ukuran file yang besar, menyebabkan bandwidth habis, karena itu ukuran file perlu diperkecil.
Cara yang umumnya digunakan di halaman web adalah memberikan link ke ukuran image yang besar melalui image berukuran kecil yang disebut thumbnail. Istilah thumbnail itu sudah muncul di tahun 1996.
Sejauh ini, fungsi image php lebih banyak digunakan untuk tujuan bagaimana image disajikan di dalam halaman web, seperti :
- memperkecil ukuran image (pixel)
- memperkecil ukuran file image (kb)
- membuat thumbnail
- membuat watermark
- menyembunyikan lokasi file image
- membuat security image (captcha)
Saya punya class yang bisa memperkecil ukuran file on the fly dengan ukuran yang kita hendaki. Sangat berguna bagi yang punya portal foto yang mensyaratkan ukuran foto tidak melebihi sekian kilobyte. Silakan simak class JPEG Reducer berikut:
/**
* JPEGReducer class version 1
* 25 November 2004
* reduce size of jpeg file on the fly
* Author: huda m elmatsani
* Email : anghuda ## yahoo ## com
*
* Description:
* Usually we reduce the size of jpeg file by changing the quality factor,
* as provided by imagejpeg() function, but with this method we can not
* produce the image with expected file size easyly.
* JPEGReducer class can help us to reduce image size with easy
* by setting file size as variable.
*
* sintax:
* $im = new JPEGReducer(jpeg_file_path, expected_size);
*
* example
* $im = new JPEGReducer("jakarta.jpg",15000);
* $im->OutputImage();
*
*/
Class JPEGReducer {
var $imgname;
var $imgsize;
var $orgsize;
function JPEGReducer($imgname,$imgsize) {
$this->imgname = $imgname;
$this->imgsize = $imgsize;
$this->orgsize = filesize($imgname);
}
function AcceptedSize() {
if($this->imgsize orgsize) return 1;
else return 0;
}
//courtesy vic at zymsys dot com
function LoadJpeg () {
$imgname = $this->imgname;
$im = @imagecreatefromjpeg ($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = imagecreate (150, 30); /* Create a blank image */
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}
function CalculateQFactor() {
$im = $this->LoadJpeg();
$size = $this->imgsize;
//create sample data of 75%, 50%, and 25% quality
ob_start();
imagejpeg($im,'',75);
$buff75 = ob_get_contents();
ob_end_clean();
ob_start();
imagejpeg($im,'',50);
$buff50 = ob_get_contents();
ob_end_clean();
ob_start();
imagejpeg($im,'',25);
$buff25 = ob_get_contents();
ob_end_clean();
//calculate size of each image
$size75 = strlen($buff75);
$size50 = strlen($buff50);
$size25 = strlen($buff25);
//calculate gradient of size reduction by quality
$mgrad1 = 25/($size50-$size25);
$mgrad2 = 25/($size75-$size50);
$mgrad3 = 50/($size75-$size25);
$mgrad = ($mgrad1+$mgrad2+$mgrad3)/3;
//result of approx. quality factor for expected size
return round($mgrad*($size-$size50)+50);
}
function OutputImage() {
$im = $this->LoadJpeg();
header("Content-type: image/jpeg");
if($this->AcceptedSize()){
$Qfactor = $this->CalculateQFactor();
imagejpeg($im,'',$Qfactor);
}
else imagejpeg($im);
imagedestroy($im);
}
function SaveImage($imgname) {
$im = $this->LoadJpeg();
if($this->AcceptedSize()){
$Qfactor = $this->CalculateQFactor();
imagejpeg($im,$imgname,$Qfactor);
}
else imagejpeg($im,$imgname);
imagedestroy($im);
}
}
Dengan mengkombinasikannya dengan class Image Converter, maka kita bisa memperkecil ukuran file image apa pun. Itulah contoh bagaimana PHP begitu luas pemanfaatannya dalam apa pun aplikasi web yang melibatkan image. Bayangkan tidak ada image di halaman web, buat apa fungsi-fungsi php itu … bisa mubazir.
Download class JPEGReducer.
Huda M Elmatsani
http://lentera.web.id
7 Comments + Add Comment
Leave a comment
Arsip
- December 2011
- July 2011
- April 2011
- December 2010
- August 2010
- July 2009
- April 2009
- December 2008
- November 2008
- October 2008
- July 2008
- June 2008
- April 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006

An article by






“Bayangkan tidak ada image di halaman web, buat apa fungsi-fungsi php itu … bisa mubazir.”
Iya, memang mubazir kalau aplikasi web seperti yang berikut :)
http://blog.phpug.or.id/2006/09/02/seperti-konsol/
Coba yah .. upload fotonya yang berhubungan dengan PHP :D :D
emang kenapa ?
gak apa apa :d
ada ga ya fungsi php untuk memfilter gambar..??mksh ya..
@tera, rasanya untuk PHP5 ada, coba cek aplikasi berikut :
http://imageedit.sourceforge.net/
:-?, kayaknya bagus, ta cobain deh.