Halaman

Subscribe:

Main Menu

Rabu, Mei 07, 2008

Image Processing di java

Lanjuatan Artikel Sebelumnya Buat Picture Box di java. dengan komponen yang telah di buat dulu. kita bisa mengambar dengan mudah di java :D. dengan kata lain kita bisa memakainya untuk Image Processing di Java. atau untuk Sound Processing Di java. Artikel yang sekarang kita coba pake untuk Image Processing di java dulu y.. :)

Dulu sudah buat komponen picture box nah di komponen itu bisa kita edit2 atau tambahin nech. tidak hanya nampilin image. misal kita mau gambar garis. tinggal kita tambahin aja method drawLine,draw Oval atau pun lainnya. kita manfaatin tuch method2nya Graphics. antara lain

draw3DRect(int x, int y, int width, int height, boolean raised)
drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
drawBytes(byte[] data, int offset, int length, int x, int y)
drawChars(char[] data, int offset, int length, int x, int y)
drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
drawImage(Image img, int x, int y, ImageObserver observer)
drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
drawLine(int x1, int y1, int x2, int y2)
drawOval(int x, int y, int width, int height)
drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
drawPolygon(Polygon p)
drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
drawRect(int x, int y, int width, int height)
drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
drawString(AttributedCharacterIterator iterator, int x, int y)
drawString(String str, int x, int y)
fill3DRect(int x, int y, int width, int height, boolean raised)
fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
fillOval(int x, int y, int width, int height)
fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
fillPolygon(Polygon p)
fillRect(int x, int y, int width, int height)
fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

dan lain-lain.. tinggal kita butuhnya apa :)

oh iya. yang paling penting dalam image processing itu kan, gimana agar kita bisa dapetin RGB dari pixel tertentu. nah untuk itu ada caranya. tadi saat drawImage. imagenya di simpen dalam variabel aja. eh tunggu dulu. jenis image tadi apa dulu? java.awt.image atau BufferedImage?
kalo jenisnya image buatin method kayak gini untuk dapetin RGB nya

public void handlesinglepixel(int x, int y, int pixel) {
int alpha = (pixel >> 24) & 0xff;
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel ) & 0xff;
// Deal with the pixel as necessary...
}

public void handlepixels(Image img, int x, int y, int w, int h) {
int[] pixels = new int[w * h];
PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
return;
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
System.err.println("image fetch aborted or errored");
return;
}

kalo jenisnya BufferedImage kita bisa langsung dapetin RGBnya dengan
BufferedImage.getRGB(x, y);
kalo jenisnya selain itu. berarti musti kita convert ke jenis ini. image atau BufferedImage :)

udahlah aku rasa itu aja dulu :).

2 komentar: