Membuat Thumbnail dengan PHP dengan Cara Resize dan Crop Image

Thumbnail merupakan gambar kecil atau seperti icon yang merupakan hasil resize menjadi ukuran lebih kecil dari gambar aslinya. Secara sederhana untuk membuat thumbnail, kita cukup merubah ukuran gambar menjadi lebih kecil. Tetapi yang jadi masalah adalah kalau mentah-mentah diubah ukurannya, maka jika gambar yang tidak persegi (gambarnya bisa lebih panjang atau lebih tinggi) akan menghasilkan gambar yang tidak bagus atau perbandingan antara panjang dan lebar tidak sama dengan aslinya.
Untuk mengatasi gambar yang persegi panjang, supaya menghasilkan thumbnail yang bagus, maka yang perlu dilakukan adalah:
  1. Resize gambar, dengan perbandingan panjang dan lebarnya sama dengan aslinya
  2. Crop gambar di tengah-tengah.
Coba perhatikan ilustrasi membuat thumbnail dari gambar yang persegi panjang di bawah:

Kode PHP Thumbnail

Setelah mengetahui konsep pembuatan thumbnail di atas, mari kita buat kode PHP nya. Di sini kita akan menggunakan GD Functions yang ada di PHP. Untuk menggunakan fungsi GD ini, pastikan anda sudah mengaktifkan GD library. Caranya edit file php.ini, lalu cari baris ;extension=php_gd2.dll, hilangkan tanda titik komanya. Restart kembali web server anda.
Berikut kode PHP untuk membuat thumbnail
drzthumb.php
<?php

// Gambar aslinya
$filename = 'gambar.jpg';

// ambil ukuran asli image
list($lebar_asli, $tinggi_asli) = getimagesize($filename);

$persegi = 200; //ukuran thumbnail, artinya 200 x 200;

$canvas = imagecreatetruecolor($persegi, $persegi);
$current_image = imagecreatefromjpeg($filename);

if($lebar_asli > $tinggi_asli){
    $tinggi = $persegi;
    $lebar =  ceil(($persegi/$tinggi_asli) * $lebar_asli);
    $x = ceil(($lebar/2) - ($persegi/2));
    imagecopyresized($canvas, $current_image, 0, 0, $x, 0, $lebar, $tinggi, $lebar_asli, $tinggi_asli);
}else{
    $lebar = $persegi;
    $tinggi = ceil(($persegi/$lebar_asli) * $tinggi_asli);
    $y = ceil(($tinggi/2) - ($persegi/2));
    imagecopyresized($canvas, $current_image, 0, 0, 0, $y, $lebar, $tinggi, $lebar_asli, $tinggi_asli);
}

header('Content-type: image/jpeg');

imagejpeg($canvas);

imagedestroy($canvas);

?>
Untuk menjalankannya gunakan kode HTML berikut <img src="drzthumb.php">
Download Source Code Thumbnail PHP

Load disqus comments

0 komentar