Anda di halaman 1dari 8

Hamzan Haris

1410530199

Laporan Praktikum 3

Membuat gamabr menjadi Grey Scale dan Binier menggunakan Java. Adapun langkah
membuatnya sebagai berikut :
1. Buat file Jframe Form pada java seperti biasa, berikan nama File bebas sesuai
yang ndi inginkan.
2. Tambahkan menu bar pada Form, pilih di menu Pallette Swing menu menu bar.
Lalu tambahkan menu item pada file dan edit seperti pada gambar dengan cara klik
kanan add from pallette menu item. Seperti pada gambar dibawah ini.

3. lalu buat tiga Pane untuk menempatkan gambar asli, gambar gray scale dan gambar
binier.

4. klik kanan pada meni item upload gambar untuk memasukan coding dibawah ini :
String
sumber;
Image
IconGambar;
Image
ikonGambar;
Hamzan Haris
1410530199

private void
jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
/TODO add your handling code
here: JFileChooser fc = new
JFileChooser();
int open = fc.showOpenDialog(jPanel1);
if (open == JFileChooser.APPROVE_OPTION) { //diantara if
untuk menampilkan gambar
sumber = fc.getSelectedFile().getPath();
BufferedImage loadImg = LoadImage(sumber);
int x = loadImg.getWidth();
int y = loadImg.getHeight();
ImageIcon image = new
ImageIcon(resize(loadImg, 400, 300));
LabelAsli.setIcon(image);

IconGambar=new ImageIcon(sumber).getImage();
int ukurx=IconGambar.getWidth(null);
int ukury=IconGambar.getHeight(null);

}
}
Tambahkan methode dibawah supaya gambar berhasil diupload :
public static BufferedImage LoadImage(String ref) { //memanipulasi
gambar

BufferedImage bimg = null;


try {
bimg = ImageIO.read(new File(ref));
} catch
(Exception e)
{ e.printStackTr
ace();
}
Hamzan Haris
1410530199

return bimg;
}

public static BufferedImage resize(BufferedImage img, int newW, int


newH){
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = new BufferedImage(newW,
newH, img.getType()); Graphics2D g =
dimg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATI
ON,
RenderingHints.VALUE_INTERPOLATION_BILINE
AR); g.drawImage(img, 0, 0, newW,
newH, 0, 0, w, h, null); g.dispose();
return dimg;
}

5. lalu klik kanan pada menu edit gray sscale, isikan code seperti dibawah :
private void
jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
BufferedImage prosesGambar;
ikonGambar = new ImageIcon(sumber).getImage();
int ukuranX = ikonGambar.getWidth(null);
int ukuranY = ikonGambar.getHeight(null);
BufferedImage loadImg =
LoadImage(sumber); prosesGambar =
new BufferedImage(ukuranX, ukuranY,
BufferedImage.TYPE_BYTE_GRAY);
Graphics grafik = prosesGambar.getGraphics();
grafik.drawImage(ikonGambar, 0, 0, null);
WritableRaster raster = prosesGambar.getRaster();
for (int x = 0; x < ukuranX; x++) {
for (int y = 0; y < ukuranY; y++) {
int rgb = loadImg.getRGB(x, y);
int merahg = (rgb >> 16) & 0xff;
int hijaug = (rgb >> 8) & 0xff;
int birug = (rgb >> 0) & 0xff;
float grayScale = (float) ((0.5 * merahg) + (0.3 *
hijaug) + (0.2 * birug)); raster.setSample(x, y, 0,
grayScale);
}
}
ImageIcon imageIcon1 = new
ImageIcon(resize(prosesGambar, 400, 300));
LabelGray.setIcon(imageIcon1);

}
6. klik kanan pada menu Edit Biner, isikan code seperti dibawah :
private void
jMenuItem4ActionPerformed(java.awt.event.ActionEvent
evt) {
/ TODO add your handling
code here: BufferedImage
prosesGambar;
ikonGambar = new ImageIcon(sumber).getImage();
int ukuranX = ikonGambar.getWidth(null);
int ukuranY = ikonGambar.getHeight(null);
BufferedImage loadImg =
LoadImage(sumber); prosesGambar =
new BufferedImage(ukuranX, ukuranY,
BufferedImage.TYPE_BYTE_GRAY);
Graphics grafik = prosesGambar.getGraphics();
grafik.drawImage(ikonGambar, 0, 0, null);
WritableRaster raster = prosesGambar.getRaster();
for (int x = 0; x < ukuranX; x++) {
for (int y = 0; y < ukuranY; y++) {
int rgb = loadImg.getRGB(x, y);
int merahg = (rgb >> 16) & 0xff;
int hijaug = (rgb >> 8) & 0xff;
int birug = (rgb >> 0) & 0xff;
float biner = (float) ((0.5 * merahg) + (0.3 *
hijaug) + (0.2 * birug)); raster.setSample(x, y, 0,
biner);
if ( biner > 125) { // jika biner lebih besar dari 255 maka biner
akan berwarna putih biner = 255;
} else { // tapi jika tidak atau biner kurang dari 125 maka
akan berwarna hitam biner = 0;
}
raster.setSample(x, y, 0, biner);
}
}
ImageIcon imageIcon1 = new
ImageIcon(resize(prosesGambar, 400, 300));
LabelBiner.setIcon(imageIcon1);
}
Jika program berhasil maka hasil ahir akan tampak seperti pada gamabar dibawah ini,
setelah mengupload gambar dan memerikan efek gray scale dan efek gambar biner :

Anda mungkin juga menyukai