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
1.
2.
// membuat image negatif
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_NEGATE);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
grayscale.php
1.
2.
// membuat grayscale image
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_GRAYSCALE);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
brightness.php
1.
2.
// mengatur tingkat brightness
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_BRIGHTNESS, 50);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
contrast.php
1.
2.
// mengatur tingkat contrast
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_CONTRAST, 10);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
colorize.php
1.
2.
// mengatur skala warna RGB
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_COLORIZE, 10, 100, 20);
6.
imagejpeg(
$image
);
7.
?>
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
1.
2.
// image dari hasil edge detection
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_EDGEDETECT);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
emboss.php
1.
2.
// image dengan efek emboss
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_EMBOSS);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
gaussian.php
1.
2.
// image dengan efek Gaussian blur
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_GAUSSIAN_BLUR);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
sketch.php
1.
2.
// image dengan efek sketch
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_MEAN_REMOVAL);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
smooth.php
1.
2.
// mengatur tingkat kehalusan image
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_SMOOTH, 25);
6.
imagejpeg(
$image
);
7.
?>
Hasilnya adalah:
Anda dapat pula menggabung beberapa proses filtering dalam satu script, misalnya
grayscale-sketch.php
1.
2.
// mengkonversi image ke grayscale lalu memberikan efek sketch
3.
header(
"Content-type: image/jpeg"
);
4.
$image
= imagecreatefromjpeg(
'faza.jpg'
);
5.
imagefilter(
$image
, IMG_FILTER_GRAYSCALE);
6.
imagefilter(
$image
, IMG_FILTER_MEAN_REMOVAL);
7.
imagejpeg(
$image
);
8.
?>
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.
Oya, Anda dapat pula mendownload semua script di atas (tidak termasuk
foto aslinya ya…, silakan gunakan foto Anda sendiri yang keren he..3x)
Download Script
Selamat mencoba, mudah-mudahan ada manfaatnya dan nantikan tips dan trik web programming selanjutnya di blog ini.
EmoticonEmoticon