Open Source · Programming

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.