hallo zusammen,
ich habe ein problem. folgendes ist mein code:
ich möchte nun folgendes machen:
ich möchte die werte red, green und blue erst in das jeweilige feld schreiben (redArray...); nachdem dann die innere schleife durchgelaufen ist, möchte ich die werte aus dem redArray in das redSaveArray schreiben, um das redArray für die nächste Schleife nutzen zu können; das kann dann quasi wieder überschrieben werden; damit das redSaveArray alle Werte aufnehmen kann, habe ich quasi die int-werte r, g und b eingeführt, damit die neu reinzuschreibenden werte in die saveArrays immer am Schluss angehängt werden; ich brauch letztendlich am Schluss alle Werte in den SaveArrays um die auswerten zu können.
Leider sagt mir mein nettes Eclipse, ich hätte folgenden Fehler:
java.lang.ArrayIndexOutOfBoundsException
als erstes in der Zeile:
und ich hab keine Ahung warum!
wie kommt das?
Bitte sehr um Hilfe
lg katha
ich habe ein problem. folgendes ist mein code:
Code:
public static void main(String[] args)
{
int redArray[] = {0}, greenArray[] = {0}, blueArray[] = {0};
int redSaveArray[] = {0}, greenSaveArray[] = {0}, blueSaveArray[] = {0};
// Bild laden
BufferedImage img = loadTheImage();
int w = img.getWidth(), h = img.getHeight();
System.out.println("width: " + w);
System.out.println("height: " + h);
System.out.println();
//System.out.println("image-type: " + img.getType());
for(int y=0; y<h; y++)
{
for(int x=0; x<w; x++)
{
int argb = img.getRGB(x, y); //liest den rgb-wert eines pixels aus
//int alpha = (argb >> 24) & 0xff; //zerlegt den argb-wert in alpha, r, g, b
int red = (argb >> 16) & 0xff;
int green = (argb >> 8) & 0xff;
int blue = (argb) & 0xff;
//System.out.println("Pixel: " + "x=" + (x+1) + " , y=" + (y+1));
//System.out.println(/*"alpha=" + alpha + */"R=" + red + " G=" + green + " B=" + blue);
//System.out.println();
redArray[x] = red; //speichert die werte an die entsprechende stelle
greenArray[x] = green; //in ein feld ab
blueArray[x] = blue;
}
for(int z=0; z < redArray.length; z++)
{
int r = redSaveArray.length;
int g = greenSaveArray.length;
int b = blueSaveArray.length;
redSaveArray[r+1] = redArray[z];
greenSaveArray[g+1] = greenArray[z];
blueSaveArray[b+1] = blueArray[z];
}
}
farbenAuswerten(redSaveArray, greenSaveArray, blueSaveArray);
}
ich möchte nun folgendes machen:
ich möchte die werte red, green und blue erst in das jeweilige feld schreiben (redArray...); nachdem dann die innere schleife durchgelaufen ist, möchte ich die werte aus dem redArray in das redSaveArray schreiben, um das redArray für die nächste Schleife nutzen zu können; das kann dann quasi wieder überschrieben werden; damit das redSaveArray alle Werte aufnehmen kann, habe ich quasi die int-werte r, g und b eingeführt, damit die neu reinzuschreibenden werte in die saveArrays immer am Schluss angehängt werden; ich brauch letztendlich am Schluss alle Werte in den SaveArrays um die auswerten zu können.
Leider sagt mir mein nettes Eclipse, ich hätte folgenden Fehler:
java.lang.ArrayIndexOutOfBoundsException
als erstes in der Zeile:
Code:
redArray[x] = red;
und ich hab keine Ahung warum!
wie kommt das?
Bitte sehr um Hilfe
lg katha