Kamis, 07 Juni 2018

Membuat Thumbnail Image Dengan PHP dan ImageMagick


Entah anda sekarang ini lagi bikin situs media sosial atatupun lagi bikin CMS; kode untuk membuat thumbnail harus anda ketahui. Thumbnail diperlukan untuk memberikan kesan power-text pada situs web, sehingga akan tampak lebih interaktif di mata penggunanya.

Untuk membuat thumbnail image dengan PHP, kita bisa memanfaatkan salah satu library pengolah grafis yang sudah banyak di-include di PHP. Library yang sudah umum dan biasanya digunakan untuk membuat thumbnail adalah GD dan ImageMagick.

Pada tulisan kali ini, kita akan membuat thumbnail di PHP dengan ImageMagick, karena ImageMagick lebih mudh dan sederhana jika dipilih untuk memproses gambar dalam resolusi besar menjadi berukuran thumbnail yang beresolusi lebih kecil.

Membuat thumbnail di PHP ataupun di bahasa pemrograman lainnya, sebenarnya prinsipnya sama saja. Thumbnail hanyalah bentuk gambar dalam resolusi kecil dan seragam. Artinya, thumbnail dihasilkan hanya dengan mengubah ukuran/resize gambar utama.

Masalahnya, gambar input yang harus dijadikan thumbnail umumnya memiliki rasio panjang x lebar yang tidak seragam. Sehingga, selain melakukan resize, gambar thumbnail yang akan dihasilkan sebelumnya harus di-crop dulu.

Algoritma untuk cropping simple kok. Ilustrasinya seperti gambar di bawah ini.

  Jika panjang (width) > tinggi (height), crop agar width = height. Offset pemotongan horisontal dihitung = (width - height) / 2.


Jika panjang (width) < tinggi (height), crop agar height = width. Offset pemotongan vertikal dihitung = (height - width) / 2.


function draw_thumbnail($file, $sz){
    $image = new Imagick($file);
    $w = $image->getImageWidth();
    $h = $image->getImageHeight();
    if($w > $h){
        $image->cropImage($h,$h,(($w-$h) / 2),0);
    } else if($w < $h){
        $image->cropImage($w,$w,0,(($h-$w) / 2));
    }
    $image->resizeImage($sz,$sz,Imagick::FILTER_LANCZOS,1);
    $image->setImageFormat('jpg');
    header('Content-type: image/jpg');
    echo $image;
}


Mudah sekali, kan? banyak programmer malah menggunakan library cuma untuk membuat thumbnail, padahal jika mau, kita hanya butuh beberapa baris kode di atas untuk melakukannya.

Contoh implementasi berikut akan memubuat thumbnail dari gambar contoh.png agar berukuran 50x50 px.

draw_thumbnail("/var/www/html/contoh.png",50);

Selamat mencoba...

Load disqus comments

0 comments