About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Manipulasi Image dengan PHP
PHP

Manipulasi Image dengan PHP

Istilah ‘Manipulasi’ di sini, bukanlah manipulasi yang bersifat negatif :-). Istilah ini terkait dengan pengolahan image untuk menghasilkan image baru. Yang dimaksud dalam manipulasi image di sini adalah ‘image filtering’. Dalam dunia image processing, tentu hal ini bukanlah hal yang baru lagi. Nah… pada artikel kali ini akan dibahas bagaimana cara memanipulasi image dengan PHP yang dapat dilakukan dengan sangat mudah.

Untuk memanipulasi image dengan PHP, telah tersedia function imagefilter(). Apabila Anda masih menggunakan PHP 4, maka Anda tidak akan menemukannya karena function ini hanya ada di PHP 5. Oleh karena itu segeralah bermigrasi ke PHP 5 bila masih menggunakan PHP 4 :-).

Dengan menggunakan imagefilter(), Anda bisa melakukan filtering image seperti mengatur tingkat brightness, kontras, mengubah image ke bentuk negatif, memberikan efek emboss, memberikan efek sketch, mengubah true color image ke grayscale, melakukan proses edge detection, memperhalus image (smoothing), serta memberikan efek blur.

Secara umum, sintaks dari imagefilter() adalah sebagai berikut:

imagefilter(image asli, tipe filtering, [argumen])

Untuk tipe filtering yang dapat Anda gunakan adalah:

– IMG_FILTER_NEGATE, digunakan untuk membuat image negatif
– IMG_FILTER_GRAYSCALE, mengkonversi ke grayscale
– IMG_FILTER_BRIGHTNESS, mengatur tingkat brightness
– IMG_FILTER_CONTRAST, mengatur tingkat kontras
– IMG_FILTER_COLORIZE, mengatur skala warna RGB
– IMG_FILTER_EDGEDETECT, menghasilkan image dari proses edge detection
– IMG_FILTER_EMBOSS, memberikan efek timbul (emboss)
– IMG_FILTER_GAUSSIAN_BLUR, memberikan efek blur (Gaussian Blur)
– IMG_FILTER_SELECTIVE_BLUR, memberikan efek blur (Selective Blur)
– IMG_FILTER_MEAN_REMOVAL, memberikan efek sketch
– IMG_FILTER_SMOOTH, memperhalus image

Dalam hal ini, parameter ‘argumen’ sifatnya adalah optional.

Selanjutnya bagaimana cara penggunaannya? Ini dia contohnya. Dalam contoh ini, saya ambil sampel sebuah image berformat JPG dari foto anak saya Faza 🙂

Foto Asli

negatif.php

<?php
// membuat image negatif
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_NEGATE);
imagejpeg($image);
?>

Hasilnya adalah:

grayscale.php

<?php
// membuat grayscale image
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagejpeg($image);
?>

Hasilnya adalah:

brightness.php

<?php
// mengatur tingkat brightness
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_BRIGHTNESS, 50);
imagejpeg($image);
?>

Hasilnya adalah:

contrast.php

<?php
// mengatur tingkat contrast
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_CONTRAST, 10);
imagejpeg($image);
?>

Hasilnya adalah:

colorize.php

<?php
// mengatur skala warna RGB
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_COLORIZE, 10, 100, 20);
imagejpeg($image);
?>

Pada imagefilter() di atas, nilai 10 pada parameter tersebut mengatur skala untuk warna merah (RED), 100 untuk hijau (GREEN), dan 20 untuk biru (BLUE).

Hasilnya adalah:

edgedetection.php

<?php
// image dari hasil edge detection
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_EDGEDETECT);
imagejpeg($image);
?>

Hasilnya adalah:

emboss.php

<?php
// image dengan efek emboss
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_EMBOSS);
imagejpeg($image);
?>

Hasilnya adalah:

gaussian.php

<?php
// image dengan efek Gaussian blur
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
imagejpeg($image);
?>

Hasilnya adalah:

sketch.php

<?php
// image dengan efek sketch
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_MEAN_REMOVAL);
imagejpeg($image);
?>

Hasilnya adalah:

smooth.php

<?php
// mengatur tingkat kehalusan image
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_SMOOTH, 25);
imagejpeg($image);
?>

Hasilnya adalah:

Anda dapat pula menggabung beberapa proses filtering dalam satu script, misalnya

grayscale-sketch.php

<?php
// mengkonversi image ke grayscale lalu memberikan efek sketch
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg('faza.jpg');
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagefilter($image, IMG_FILTER_MEAN_REMOVAL);
imagejpeg($image);
?>

Hasilnya adalah:

OK… that’s it, beberapa jenis filtering yang dapat Anda lakukan dengan function imagefilter(). Pada contoh ini, source image berasal dari sebuah file. Nah.. Anda dapat pula mengembangkan script untuk filtering image yang berasal dari database.

Selamat mencoba, mudah-mudahan ada manfaatnya dan nantikan tips dan trik web programming selanjutnya di blog ini.

 

Bagikan artikel ini jika bermanfaat !

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply