coding :
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.awt.image.PixelGrabber;
public class bitmap extends Applet
{
Image img;
int lebar, tinggi;
int warna, red, green, blue, alpha, abuabu, tempwarna;
String tampil;
//diatas ini merupakan kumpulan variabel beserta tipe datanya.
public void init()
//init : yang pertama kali dipanggil dalam html.
{
img=this.getImage(this.getDocumentBase(), "kucing.jpg");
//getDocumentBase untuk mengambil jenis file apapun.
lebar = img.getWidth(this);
}
public void paint (Graphics g)
//paint : menampilkan applet (berkedip jika tampilannya diperbesar maupun diperkecil)
{
//beri warna pada panel
g.setColor(Color.lightGray);
g.fillRect(0,0,2800,800);
//ambil lebar dan tinggi citra
lebar = img.getWidth(this);
tinggi = img.getHeight(this);
//tampilkan informasi lebar dan tinggi citra
g.setColor(Color.black);
tampil = String.valueOf(lebar);
g.drawString("lebar: "+tampil,10,20);
tampil = String.valueOf(tinggi);
g.drawString("tinggi: "+tampil,10,40);
//tampilkan citra dengan drawImage
g.drawImage(img,10,50,this);
//tentukan panjang array pixels
int [] pixels = new int[lebar*tinggi];
PixelGrabber pg = new PixelGrabber(img,0,0,lebar,tinggi, pixels,0,lebar);
//deklarasi = bentuk pixel; 0,0->posisi awal;
try
{
pg.grabPixels(); //grab piksel citra ke object pg.
}
catch (InterruptedException ie)
{
System.out.println("Terjadi kesalahan saat mengambil data pixels");
ie.printStackTrace();
return;
}
g.drawString("Hasil Pengolahan",lebar+100,20);
g.drawString("Normal",lebar+100,40);
g.drawString("Flip Vertikal",lebar+100+lebar+50,40);
g.drawString("Flip Horisontal",lebar+100,185);
g.drawString("Flip Horisontal & Vertikal", lebar+100+lebar+50, 185);
//posisi koordinat tulisannya
g.setColor(Color.black);
//bitmapnya
int [][] bitmapR = new int[lebar][tinggi];
int [][] bitmapG = new int[lebar][tinggi];
int [][] bitmapB = new int[lebar][tinggi];
//variabel bitmap : suatu penampungan sebuah warna. 1 sel bitmap mencerminkan 1 pixel.
for(int j=0;j<tinggi;j++)
{
for(int i=0;i<lebar;i++)
{
warna = pixels[j*lebar+i];
red = (warna >> 16) & 0xff;
bitmapR[i][j] = red;
green = (warna >> 8) & 0xff;
bitmapG[i][j] = green;
blue = (warna) & 0xff;
bitmapB[i][j] = blue;
}
} //looping bitmapnya
for(int j=0;j<tinggi;j++)
{
for(int i=0;i<lebar;i++)
{
//tampilan normal
g.setColor(new Color(bitmapR[i][j], bitmapG[i][j], bitmapB[i][j]));
g.drawLine(i+lebar+100,j+50, i+lebar+100, j+50);
//Flip Horisontal
g.setColor(new Color(bitmapR[lebar-1-i][j], bitmapG[lebar-1-i][j], bitmapB[lebar-1-i][j]));
g.drawLine(i+lebar+100,j+tinggi+40+50, i+lebar+100, j+tinggi+40+50);
//Flip Vertikal
g.setColor(new Color(bitmapR[i][lebar-1-j], bitmapG[i][lebar-1-j], bitmapB[i][lebar-1-j]));
g.drawOval(i+lebar+100+lebar+50, j+50, 1,1);
//Flip Horisontal - Vertikal
g.setColor(new Color(bitmapR[lebar-1-i][lebar-1-j], bitmapG[lebar-1-i][lebar-1-j], bitmapB[lebar-1-i][lebar-1-j]));
g.drawOval(i+lebar+100+lebar+50, j+200, 1,1);
}
} //looping untuk tampilan hasilnya
}
public void repaint (Graphics g)
{
//kosongkan saja
}
}html :
<html>
<head>
<title>Bitmap</title>
</head>
<body>
<applet code=bitmap.class width=1000 height=800>
</applet>
</body>
</html>
0 komentar:
Posting Komentar