Selamat pagi semuanya π semoga dalam keadaan sehat selalu
Pagi ini aku mau berbagi pengetahuan baru mengenai pengolahan citra digital. Disini saya memberi contohnya adalah program untuk menampilkan Histogram dari sebuah image/gambar, mengatur Brightness/Kecerahan gambar, Contrast, efek Negasi/Negate, dan efek Grayscale dari suatu gambar/image yang ditentukan. Program yang akan aku bagikan kali ini menggunakan bahasa pemrograman PHP :).
Dalam melakukan olah gambar, pertama kita harus bisa bagaimana cara mengambil pixel dari suatu gambar, mengetahui komposisi warna RGB dari pixel tersebut, kemudian terakhir harus bisa memberi warna baru/memberi nilai integer baru kepada pixel yang sudah kita mabil kemudian disusun menjadi gambar/image baru sesuai matriks/ukuran resolusi gambar awal.
Oke, pertama akan aku tunjukkan bagaiman cara mengambil pixel dari suatu gambar menggunakan PHP :
$imaged = "contoh_gambar.jpg";
$images = imagecreatefromjpeg($imaged);
$image_width = imagesx($images);
$image_height = imagesy($images);
$total_xy = $image_width*$image_height;
for($y=0;$y<$image_height;$y++){
for($x=0;$x<$image_width;$x++){
# mengambil komposisi warna RGB gambar
$rgb = imagecolorat($images, $x, $y);
# mengambil warna Red
$r = ($rgb >> 16) & 0xFF;
# mengambil warna Green
$g = ($rgb >> 8) & 0xFF;
# mengambil warna Blue
$b = $rgb & 0xFF;
# jadi komposisi RGB pixelnya adalah $r $g $b
# masing-masing bernilai integer
}
}
Kemudian, script berikut ini adalah contoh untuk mengatur gambar dengan komposisi pixel RGB yang baru, fungsi ini dapat diterapkan untuk pengaturan grayscale, brightness dan sebagainya.
$img = "contoh_gambar.jpg";
$images_source = imagecreatefromjpeg($img);
for($x=0;$x<imagesx($images_source);++$x){
for($y=0;$y<imagesy($images_source);++$y){
$index = imagecolorat($images_source, $x, $y);
$rgb = imagecolorsforindex($images_source, $index);
# mengambil warna R menggunakan fungsi imagecolorforindex
# fungsi tsb hampir sama dengan imagecolorat
# bedanya hanya return value
$c_red = $rgb['red'];
$c_green = $rgb['green'];
$c_blue = $rgb['blue'];
# ini berfungsi untuk menyusun komposisi warna baru untuk RGB
$color = imagecolorallocate($images_source, $c_red, $c_green, $c_blue);
# setelah komposisi baru terbentuk
# kemudian ditanamkan ke gambar baru
imagesetpixel($images_source, $x, $y, $color);
}
}
imagejpeg($images_source, "gambar_baru.jpg", 100);
imagedestroy($images_source);
Cukup mudah bukan :mrgreen:, semoga dari potongan kode diatas bisa memberi pencerahan bagi teman-teman. Untuk bagaiman cara bisa melakukan edit brightness, grayscale dan lainnya, tergantung rumus pada masing-masing efek. ( tiap efek ada rumus matematika nya lho…. π )
Oke, untuk script contoh program pengolaha citra digital yang sudah saya janjikan diatas, silahka download disini
Untuk request password silahkan hubungi saya melalui email atau nomor handphone :D, sengaja aku password karena ini merupakan tugasku, dan kebetulan belum dikumpulkan ke dosen,hehehe.
-7.338006112.690159
You must be logged in to post a comment.