Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Membuat Sistem Thumbnail dengan GD-Image
(Advance)
Nofriza Nindiyasari
nofri_99@yahoo.com
http://www.constantio.web.id
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
I. PENDAHULUAN
Tentu Anda pernah melihat sebuah website yang bisa menyediakan dua gambar bahkan lebih dengan
ukuran berbeda dan kualitas gambar yang baik, hal ini karena mereka menggunakan fungsi yang
digunakan oleh php yaitu GD-Image, contoh yang paling banyak digunakan adalah CMS
Coppermine, atau CMS image gallery lainnya.
Hal ini berguna digunakan untuk website yang memang memerlukan image yang tidak terlalu besar
(thumbnail) untuk disitus mereka, dan pengunjungnya bisa mendownload file aslinya ke halaman
yang disediakan, awalnya saya kebinggungan untuk membuat thumbnail ini mengingat saya dulu
lebih banyak menggunakan Coppermine untuk membuat 3 file image ketika saya mengupload file
gambar yang saya inginkan, yaitu:
• Thumbnail authorize width 100 px atau height 100 px
• Normal Image authorize width 400 px atau height 400 px
• True Image adalah gambar aslinya
Saat ini kita akan membahas bagaimana membuat thumbnail image dan kita dapat menentukan
berapa banyak file gambar yang akan dikirimkan ke dalam server tanpa harus menguploadnya satu
persatu berkali-kali. Dan sistem akan langsung membuatkan thumbnail dan file aslinya secara
langsung sesuai dengan banyaknya file gambar yang dimasukkan.
2. CONTOH KASUS
Dan saya mencobanya dengan ujicoba situs yang dahulunya menggunakan Coppermine, yaitu
www.thebestmoviereview.com yang kemudian saya buat dengan sistem baru dengan sistem yang
saya buat sendiri dengan nama CMOVIE yang kini sudah ke versi 2.1, dan saya mencoba membuat
sistem thumbnail ini selama setengah hari yang sudah melalui error dan bugs yang menyebalkan,
tetapi dapat dijalankan juga sesuai dengan aturan main dari Coppermine dan saya kombinasikan juga
1
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
dengan sistem yang ada di Wordpress. Berikut ini adalah yang diperlukan untuk menjalankan
kodingnya, dan kini saya membuatnya dengan system yang lebih advance, yaitu Anda bisa
mengupload filenya lebih dari satu.
Jika Anda memasukkan 10 gambar, maka sistem akan mengupload 10 gambar aslinya ke dalam
folder yang kita tentukan terlebih dahulu dan juga langsung membuat 10 thumbnail gambar sesuai
dengan gambar aslinya dengan ukuran yang kita setting. Untuk dekomentasi script seperti biasa saya
masukkan ke dalam program untuk bisa lebih dipahami. Contoh situs yang menggunakan sistem ini
adalah web http://www.thebestmoviereview.com/ untuk gambar wallpaper, gallery dan juga poster
yang lebih dari satu.
Selain itu yang berbeda adalah perintah dari pembuatan thumbnail, kita tidak perlu membuat
arraynya, sama seperti yang terdahulu.
• Sistem PHP berjalan baik di apache
• Jalankan GD-Image, biasanya untuk dilokal sudah terset, buatlah file phpinfo.php untuk
melihat apakah fungsi ini sudah berjalan dengan baik apa tidak.
Contoh:
<?
phpinfo();
?>
Jika sudah berjalan maka kita bisa setting untuk membuat sistem thumbnailnya.
• Buatlah satu file untuk mengupload gambar, kita ambil contoh upload.php
Contoh:
<?
/*
* Keterangan Contoh Sistem Thumbnail IKC
* Author : Nofriza Nindiyasari (Constantio)
* Email : nofri_99@yahoo.com
* Website : http://constantio.web.id
* Sample Case : http://thebestmoviereview.com
*/
?>
<form action="action.php" method="post" enctype="multipart/form-data">
<? for ($i; $i<10; $i++){ ?>
<input name="photo[]" size="30" type="file" /><br />
<? } ?>
<input name="submit" type="submit" value="Upload" />
</form>
• Buat file eksekusi yang dimaksud yaitu action.php
<?
/*
2
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
* Keterangan Contoh Sistem Thumbnail IKC
* Author : Nofriza Nindiyasari (Constantio)
* Email : nofri_99@yahoo.com
* Website : http://constantio.web.id
* Sample Case : http://thebestmoviereview.com
*/
$PhotoFileName = $_FILES['photo']['name']; // dapatkan informasi nama file
$jumlah=count($PhotoFileName); // jumlahkan berapa banyak file yang dimasukkan
$i=0;
while ($i<=$jumlah){
// membaca file
$TmpFileName = $_FILES['photo']['tmp_name']; // menempatkan file upload ditmp server
sementara
// membuat file bisa dibuka dan dibaca
$TempFile = fopen($TmpFileName[$i], "r");
$BinaryPhoto = fread($TempFile, fileSize($TmpFileName[$i]));
$ErrorReporting = error_reporting(E_ALL & ~(E_WARNING)); // lupakan warning yang
akan muncul
$SrcImage = imagecreatefromstring($BinaryPhoto); // untuk membuat image
error_reporting($ErrorReporting); // sistem pelaporan jika ada sistem yang error
if (!$SrcImage){
die ("Maaf sistem tidak bisa membaca $PhotoFileName[$i]. Pilihlah file gambar
lainnya.");
}
// mendapatkan informasi tinggi dan lebar gambar
$nWidth = imagesx($SrcImage);
$nHeight = imagesy($SrcImage);
// membuat rasio gambar thumbnail secara otomatis dengan lebar 100px atau tinggi
100pixel dilihat dari gambar asli bagian mana yang ukurannya lebih besar
$ratio = max($nWidth, $nHeight) / 100;
$ratio = max($ratio, 2.0);
// tentukan tujuan gambar tersebut dari lebar dan tinggi yang telah ditemukan
$destWidth = (int)($nWidth / $ratio);
$destHeight = (int)($nHeight / $ratio);
// tentukan dimana file tersebut akan diupload
$dir = "images/";
$uploadfile = $dir . $PhotoFileName[$i];
// membuat Thumbnail File
$DestImage = imagecreatetruecolor($destWidth, $destHeight);
$DestTrueImage = imagecreatetruecolor($nWidth, $nHeight);
@imagecopyresampled($DestTrueImage, $SrcImage,0, 0, 0, 0, $nWidth, $nHeight,
$nWidth, $nHeight); // resize the image
@imagecopyresampled($DestImage, $SrcImage,0, 0, 0, 0, $destWidth, $destHeight,
$nWidth, $nHeight); // resize the image
3
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
$BinaryThumbnail = "thumb_".$PhotoFileName[$i]."";
$ThumbDir = $dir.$BinaryThumbnail;
ob_start(); // Memulai capturing file asli
// jika ingin membuat file JPG
@imagejpeg($DestImage,$dir.$BinaryThumbnail,"80");
$BinaryThumbnail = ob_get_contents(); // the raw jpeg image data.
ob_end_clean(); // Dump the stdout so it does not screw other output.*/
if (!$uploadfile) {
die ("Maaf, kami tidak bisa mengupload file : $sPhotoFileName");
} else if (!move_uploaded_file($TmpFileName[$i], $uploadfile)) {
die ("File asli Tidak Terupload");
} else {
echo "Terupload, <a href=¥"upload.php¥">Kembali ke Upload File</a>";
$i++;
}
}
?>
• Anda tidak perlu repot membuat filenya kembali karena saya sudah menyertakannya
didalam file tutorial ini.
------------------------ SELAMAT MENCOBA ------------------------------------------------- :P -----------
4
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Biografi dan Profil
Nofriza Nindiyasari, lahir di Jakarta, 8 November 1981. Menamatkan SMU
di SMU Negeri 43 Jakarta pada tahun 1999, dan menyelesaikan S1 di
Universitas Mpu Tantular jurusan Teknik Informatika pada tahun 2003, saat
ini sedang menyelesaikan S2 di UHAMKA jurusan Magister Penelitian dan
Evaluasi Pendidikan. Pekerjaan yang pernah digelutinya yaitu sebagai dosen
di Universitas Mpu Tantular dan AMIK Mpu Tantular dan saat ini bekerja
sebagai Freelancer di Jakarta dan aktif dalam kegiatan Ilmu Komputer.
Memiliki usaha sendiri yang bergerak di bidang development dan software
house di Depok. Aktif sebagai redaktur di KRLMania dan merupakan anggota dari IslamDotNet
(ISDN), Islam Muslim Blogger (IMB). Sebagai salah satu coordinator sebuah studio komik sampai
saat ini di Jakarta yang di kenal sebagai Studio9. Berpengalaman sebagai Web designer, Programmer,
tutor dan penulis puisi tetap di KPPI (Komunitas Pecinta Puisi Indonesia) dan penulis lepas di KPSI
(Komunitas Pecinta Sastra Indonesia) yang juga sebagai pendiri dari komunitas tersebut. Memiliki
komunitas kolektor Anime yang baru saja diluncurkan desember 2006. Saat ini sedang
mengembangkan situs Database Film di Indonesia www.thebestmoviereview.com atau The Best
Movie Review yang lebih dikenal dengan nama TBMR
Informasi lebih lanjut tentang penulis ini bisa didapat melalui:
URL : http://constantio.web.id
Email : nofri_99@yahoo.com
YM : nofri_99
5
