Java DIP - Bildpixel
Ein Bild enthält eine zweidimensionale Anordnung von Pixeln. Es ist tatsächlich der Wert dieser Pixel, aus denen ein Bild besteht. Normalerweise kann ein Bild Farbe oder Graustufen sein.
In Java wird die BufferedImage-Klasse zum Behandeln von Bildern verwendet. Sie müssen anrufengetRGB() Methode der BufferedImage Klasse, um den Wert des Pixels zu erhalten.
Pixelwert abrufen
Der Pixelwert kann mit der folgenden Syntax empfangen werden
Color c = new Color(image.getRGB(j, i));
RGB-Werte abrufen
Die Methode getRGB()Nimmt den Zeilen- und Spaltenindex als Parameter und gibt das entsprechende Pixel zurück. Bei Farbbildern werden drei Werte zurückgegeben: Rot, Grün, Blau. Sie können wie folgt erhalten werden
c.getRed();
c.getGreen();
c.getBlue();
Breite und Höhe des Bildes ermitteln
Die Höhe und Breite des Bildes kann durch Aufrufen von ermittelt werden getWidth() und getHeight()Methoden der BufferedImage-Klasse. Die Syntax ist unten angegeben
int width = image.getWidth();
int height = image.getHeight();
Neben diesen Methoden werden in der BufferedImage-Klasse noch andere Methoden unterstützt. Sie werden kurz beschrieben
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | copyData(WritableRaster outRaster) Es berechnet einen beliebigen rechteckigen Bereich des BufferedImage und kopiert ihn in ein angegebenes WritableRaster. |
2 | getColorModel() Es gibt ColorModel eines Bildes zurück. |
3 | getData() Das Bild wird als eine große Kachel zurückgegeben. |
4 | getData(Rectangle rect) Es berechnet und gibt einen beliebigen Bereich des BufferedImage zurück. |
5 | getGraphics() Diese Methode gibt eine Graphics2D zurück, dient jedoch der Abwärtskompatibilität. |
6 | getHeight() Es gibt die Höhe des BufferedImage zurück. |
7 | getMinX() Es gibt die minimale x-Koordinate dieses BufferedImage zurück. |
8 | getMinY() Es gibt die minimale y-Koordinate dieses BufferedImage zurück. |
9 | getRGB(int x, int y) Es gibt ein ganzzahliges Pixel im Standard-RGB-Farbmodell (TYPE_INT_ARGB) und im Standard-sRGB-Farbraum zurück. |
10 | getType() Es gibt den Bildtyp zurück. |
Beispiel
Das folgende Beispiel zeigt die Verwendung der Java-Klasse BufferedImage, die Pixel eines Bildes mit einer Größe (100 x 100) anzeigt.
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
class Pixel {
BufferedImage image;
int width;
int height;
public Pixel() {
try {
File input = new File("blackandwhite.jpg");
image = ImageIO.read(input);
width = image.getWidth();
height = image.getHeight();
int count = 0;
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
count++;
Color c = new Color(image.getRGB(j, i));
System.out.println("S.No: " + count + " Red: " + c.getRed() +" Green: " + c.getGreen() + " Blue: " + c.getBlue());
}
}
} catch (Exception e) {}
}
static public void main(String args[]) throws Exception {
Pixel obj = new Pixel();
}
}
Ausgabe
Wenn Sie das obige Beispiel ausführen, werden die Pixel des folgenden Bilds gedruckt -
Original Image
Pixels Output
Wenn Sie in der Ausgabe nach unten scrollen, wird das folgende Muster angezeigt