Im Versuch, RGB-Daten aus einem BufferedImage in ein Array mit dem Bildraster zu schreiben, aber ich bin ein außerhalb der Grenzen Ausnahme Koordinaten bekommen, die ich heraus kippe:außerhalb der Grenzen Ausnahme Koordinaten
int height = img.getHeight();
int width = img.getWidth();
Raster R = img.getData();
double[] output = new double[3];
double[][][] pixel = new double[3][255][255];
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
R.getPixel(i,j,output);
pixel[0][i][j] = output[0];
pixel[1][i][j] = output[1];
pixel[2][i][j] = output[2];
Es sollte Schreiben Sie den Pixelwert mit den Koordinaten (i,j)
für rot in pixel[0][i][j]
, für grün in [1][i][j]
und blau in pixel[2][i][j]
.
Im die Ausnahme für die Linie bekommen:
R.getPixel(i,j,output);
Stacktrace ein Bild mit der Höhe 1 und Breite 2 mit:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at java.awt.image.ComponentSampleModel.getSampleDouble(Unknown Source)
at java.awt.image.SampleModel.getPixel(Unknown Source)
at java.awt.image.Raster.getPixel(Unknown Source)
at Color_Histogram.calculate(Color_Histogram.java:43)
at Color_Histogram.main(Color_Histogram.java:83)
Hinweis: Sie möchten die vollständige Ausnahme stacktrace einfügen. – GhostCat
Informationen nicht in Kommentare einfügen; Aktualisiere deine Frage stattdessen bitte. – GhostCat