2D-Grafik BufferedImage eingelesen, welches Modell?!

Kalom

Mitglied
Hallo,

ich habe ein Bild wie folgt eingelesen:

Java:
public class ImageLoader {


	BufferedImage img;
	private int[] PIXELS;
	
	ImageLoader(String path)
	{
		

	    File f = new File(path);
		try {
			 img = (ImageIO.read(f));
		} catch (IOException e) {
			e.printStackTrace();
		}
}

Das Funktioniert soweit auch ganz gut 😉 .

Ich würde gern mit BufferedImages vom Typ: TYPE_INT_RGB arbeiten. Ich weiß leider nicht was ImageIO.read(f) für einen Typ zurückliefert.

Ich habe das einmal ausgegeben:
Modell von img ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@60dd0912 transparency = 1 has alpha = false isAlphaPre = false

Leider kann ich damit nicht so viel anfangen...


Wenn ich die Daten eines Pixels ausgebe erhalte ich für rot: -1237980


Meine Frage:

Wenn ich sonst ein BufferedImmage erstelle mache ich das in etwa wie folgt:

Java:
		_img = new BufferedImage(800, 600), BufferedImage.TYPE_INT_RGB);

Hier ist deutlich zu sehen, welcher Typ dem Konstruktor übergeben wird
Leider verstehe ich es hier:

Java:
img = (ImageIO.read(f));

nicht so genau.


Ich hoffe Jemand kann mein Problem verstehen 😉 !

Lg und ein frohes Fest euch allen!
 
Zuletzt bearbeitet:
Ich habe einen Weg gefunden:

Java:
	    rgb = _img.getRGB(10, 10);
	    Color c = new Color(rgb);
	    int r = c.getRed();
	    int g = c.getGreen();
	    int b = c.getBlue();
	    int rbgcolor = 65536 * r + 256 * g + b;

So wird aus jedem ermitteltem Wert der INT_RGB Wert berechnet. Muss ersma so gehen 🙂 würde mich dennoch über eine bessere Lösung bzw. eine Antwort freuen!

LG Kalom
 
Java:
public class ImageLoader {
 
 
    BufferedImage img;
    private int[] PIXELS;
    
    ImageLoader(String path)
    {
        BufferedImage temp;
 
        File f = new File(path);
        try {
             temp = ImageIO.read(f);
             img = new BufferedImage(temp.getWidth(),temp.getHeight(),BufferedImage.TYPE_INT_RGB);
             Graphics g = img.getGraphics();
             g.drawImage(temp,0,0,null);
             g.dispose();


        } catch (IOException e) {
            e.printStackTrace();
        }
}

Nicht ausprobiert, aber der Weg dürfte klar sein.
 

Neue Themen


Zurück
Oben