Transparansi image png Codeigniter

Mudah-mudahan tidak banyak yang mengalami kejengkelan yang serupa dengan masalah ini . Bagi yang pernah mengalami pasti sudah mengetahui maksud judul tulisan diatas. 😀

Ya, benar sekali, jika saudara – saudari sekalian menggunakan class image_lib yang disertakan oleh framework codeigniter, akan besar kemungkinan untuk mendapati bahwa jika kita melakukan resizing (perubahan ukuran) terhadap file gambar dengan extensi png, file yang diresize akan berubah transparan nya menjadi warna hitam (tidak transparan lagi). Setelah mencoba menelurusi permasalahan tersebut dengan bantuan mbah google, didapati bahwa permasalahan tersebut lebih besar dikarenakan oleh library dari php nya sendiri, bukan dari codeigniternya.

Untuk mengatasi permasalahan tersebut, terdapat sebuah cara yang cukup simple agar kita tetap dapat menikmati transparansi dari file png setelah dilakukan resizing. Berikut langkah yang dapat diikuti :

  • Cari file Image_lib.php yang terdapat dalam folder system/libraries.
  • Untuk lebih amannya backup file tersebut terlebih dahulu sebelum diutak atik.
  • Cari baris perintah berikut (dalam CI versi 1.7.2 berada di baris 515) :
    [php]$dst_img = $create($this->width, $this->height);[/php]
  • Tambahkan code dibawah ini setelah baris perintah diatas :
    [php] $transparent_index = imagecolortransparent($src_img);
    imagepalettecopy($src_img, $dst_img);
    imagefill($dst_img, 0, 0, $transparent_index);
    imagecolortransparent($dst_img, $transparent_index);
    imagetruecolortopalette($dst_img, true, 256); [/php]

  • Simpan file tersebut, dan lakukan pengetesan resizing terhadap file png.

Semoga Bermanfaat.

New Version

Iseng melakukan perubahan ditampilan awal domainku http://www.azmifauzan.net, dimana dulunya langsung mengarah ke blog ini, sekarang berganti menjadi tampilan portal. Sedangkan untuk blog pindah tempat ke http://blog.azmifauzan.net. Tentunya hal ini akan membuat link blog ini yang sudah diindex sama si mbah google akan menjadi kacau. Untuk itu saya mohon maaf, jika ada pengunjung yang nantinya nyasar dikarenakan link yang sudah berubah.