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.

 


Beli Buku Pemrograman

5 Langkah Mudah Menguasai React Native
Rahasia Inti Master PHP & MySQLi (Improved)
Jalan Pintas Menjadi Master React JS
Trik Kolaborasi React dengan PHP & MySQL

Article by Request

Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.

Silakan manfaatkan layanan Article by Request di blog ini.

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply