G
Gast
Gast
Hallo, ich hab vesucht die Farbinformationen eines Bildes in ein 2D-Array zu speichern, jedoch erhalte ich immer folgenden Fehler und ich weiß nicht genau, wieso dieser Auftritt, weil dies mein erster Versuch ist die Farbwerte auszu lesen.
Fehler:
java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:301)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871)
at Test.main(Test.java:29)
Hierzu der Quellcode den ich geschrieben habe:
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.*;
import java.awt.Color.*;
Hoffe, es wird die Lösung gefunden, Danke im Voraus!
LG
Fehler:
java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:301)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871)
at Test.main(Test.java:29)
Hierzu der Quellcode den ich geschrieben habe:
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.*;
import java.awt.Color.*;
Code:
public class Test {
public static void main(String argumente[]) throws java.io.IOException {
int hoehe=0, breite=0, x=0, y=0;
int wert[][];
BufferedImage bild = ImageIO.read(new File("4.jpeg"));
hoehe=bild.getHeight();
breite=bild.getWidth();
//System.out.println("Hoehe: "+hoehe);
//System.out.println("Breite: "+breite);
wert = new int[breite][hoehe];
for (x =1; x <= breite; x++)
{
for (y=1; y <= hoehe; y++)
{
//System.out.println(bild.getRGB(x,y)); //RGB-Werte auslesen
Color bild_neu = new Color(bild.getRGB(x,y));
wert[x][y] = ( bild_neu.getRed() + bild_neu.getGreen() + bild_neu.getBlue() );
//int rgb = bild.getRGB(x,y); //rgb-Werte auslesen
//int red = (rgb >> 16) & 0xFF; //R-Wert auslesen
//int green =(rgb >> 8) & 0xFF; //G-Wert auslesen
//int blue = (rgb >> 0) & 0xFF; //B-Wert auslesen
//System.out.print("Rot"+red);
//System.out.print("Gruen:"+green);
//System.out.print("Blau:"+blue);
}
}
//System.out.print(" "+ wert[x][y]); //Array Ausgabe
}
}
Hoffe, es wird die Lösung gefunden, Danke im Voraus!
LG