Setelah sekian lama bertapa, hehe, akhirnya aku temukan solusi untuk projectku di kantor. Membuat sebuah gambar menjadi hitam putih. Ya, ini juga berkat sharing dari teman-teman kantor (Thanks to mas wahyono dan mas DC untuk sharing ilmunya).
private static Image makeGreyScale(Image img) { // work out how many pixels, and create array int width = img.getWidth(); int height = img.getHeight(); int[] pixels = new int[width * height]; // get the pixel data img.getRGB(pixels, 0, width, 0, 0, width, height); // convert to grey scale for (int i = 0; i < pixels.length; i++) { // get one pixel int argb = pixels[i]; // separate colour components int alpha = (argb >> 24) & 0xff; int red = (argb >> 16) & 0xff; int green = (argb >> 8) & 0xff; int blue = argb & 0xff; int avg = (red + green + blue) / 3; int grey = 0; if (avg < 128) { grey = 0; } else if (avg > 128) { grey = 255; } // construct grey value // int grey = (((red * 30) / 100) + ((green * 59) / 100) + ((blue * 11) / 100)) & 0xff; // // reconstruct pixel with grey value - keep original alpha argb = (alpha << 24) | (grey << 16) | (grey << 8) | grey; // // put back in the pixel array pixels[i] = argb; // Nilai 128 di bawah ini dapat Anda ubah sesuai dengan kebutuhan } // create and return a new Image return Image.createRGBImage(pixels, width, height, true); } |
Semoga bermanfaat.. ^^
mantab kie mbak, XD
BalasHapusmalem malem mampir nyari pencerahan, :D
:D
Hapus