Belajar Web

Belajar Web

PHP: Mengubah Gambar Berwarna Menjadi Hitam Putih

Posted by Gora Santika

Salam hangat untuk teman-teman semua yang sedang menjalankan ibadah puasa Ramadhan di tahun 1947 Jawa... haha :D
Kali ini saya ingin membahas mengenai gambar 1-bit atau monokrom hitam-putih atau gambar biner.

Jadi ceritanya saya ingin mengkonversi gambar berwarna (truecolor) menjadi hitam putih (tapi bukan grayscale). Hal itu karena saya sedang bermain-main dengan angka biner. Jadi saya butuh menerjemahkan warna pada gambar menjadi angka 1 atau 0 (1 untuk putih, 0 untuk hitam).

Ketika saya mencoba browsing ternyata pada beberapa forum terdapat pertanyaan yang sama, "Bagaimana cara mengubah gambar berwarna menjadi hitam putih". Tetapi kebanyakan jawabannya adalah mengubah gambar menjadi grayscale. Akhirnya saya mencoba untuk memecahkan masalah tersebut menggunakan PHP.

Singkat cerita, kita akan menggunakan beberapa fungsi yang dimiliki oleh PHP GD library :

  • imagefilter() - link
  • imagetruecolortopalette() - link
  • imagecolorset() - link

Jadi ndak usah pake ribet, langsung saya kasih kodenya :

<?php
  // LOAD GAMBAR
  $im = imagecreatefromjpeg("gambar.jpg");
  
  imagefilter($im, IMG_FILTER_GRAYSCALE);  // FILTER GRAYSCALE
  imagetruecolortopalette($im, false, 2);  // UBAH JADI INDEXED-IMAGE

  imagecolorset($im,0,0,0,0);              // SET PALETTE 0 = HITAM
  imagecolorset($im,1,255,255,255);        // SET PALETTE 1 = PUTIH
  
  // CETAK GAMBAR KE LAYAR
  header("content-type: image/png");
  imagepng($im);
  imagedestroy($im);
?>

Jadi pertama load gambar ke dalam variable $im. Lalu beri filter grayscale. Setelah itu ubah gambar menjadi indexed-image tapi color-table / color-palette nya dibatasi hanya dua saja (hitam dan putih).

Cukup simple bukan? Berikut saya sediakan contoh gambar hasil output program...


Gambar Asli
Gambar Hitam Putih

Demikian kurang lebih apa yang dapat saya bagi. Kurang dan lebihnya, saya mohon maaf.



[Semoga Bermanfaat]