guten abend zusammen!
ich habe hier erneut ein prob :-/
und zwar geht es um eine matrix:
ich weiß nicht weiter... was ich möchte ist folgendes:
ich möchte die farbwerte red, green, blue jedes pixels einzeln als dreierkombi in eine matrix schreiben (also ein eindimensionales array besser gesagt). dann möchte ich dieses ausgeben, ziel ist es, nachher die verschiedenen arrays auf gleichheit zu prüfen...
wenn ich nun das programm starte zeigt er mir folgenden fehler:
java.lang.ArrayIndexOutOfBoundsException (in der zeile "rgb[j] = value;" der funktion setElem) aber warum?!
ich hoffe mir kann jemand helfen!
vielen dank im voraus!
lg katha
ich habe hier erneut ein prob :-/
und zwar geht es um eine matrix:
Code:
public class MainVektor
{
static int w;
static int h;
static int[] rgb;
static int rows;
static Integer zahl;
static HashMap map = new HashMap();
//____________________________________________________________________________________________
public static void main(String[] args)
{
int counter = 0;
String stringValue;
BufferedImage img = loadTheImage();
w = img.getWidth(null);
h = img.getHeight(null);
MainVektor rgbVektor = new MainVektor(rows);
System.out.println("width: " + w);
System.out.println("height: " + h);
System.out.println();
for(int y=0; y<h; y++)
{
for(int x=0; x<w; x++)
{
int argb = ((BufferedImage) img).getRGB(x, y);
int red = (argb >> 16) & 0xff;
int green = (argb >> 8) & 0xff;
int blue = (argb) & 0xff;
rgbVektor.setElem(0, red);
rgbVektor.setElem(1, green);
rgbVektor.setElem(2, blue);
for(int i=0 ; i < rows ; i++)
{
System.out.print(rgbVektor.getElem(i) + "\t");
System.out.println(")");
}
stringValue = Integer.toString(counter);
map.put(rgb, stringValue);
counter++;
}
//farbenAuswerten();
}
}
// KONSTRUKTOREN____________________________________________________________________________________
public MainVektor(int lines)
{
rows = lines;
rgb = new int [rows];
}
public MainVektor(int lines, int[] values)
throws IllegalArgumentException
{
if(lines > values.length)
throw new IllegalArgumentException("Es fehlen Elemente zur Initialisierung der Matrix.");
rows = lines;
rgb = new int[rows];
int t=0;
for(int i=0 ; i < rows ; i++)
rgb[i] = values[t++];
}
public int getElem(int i)
{
return rgb[i];
}
public static void setElem(int j, int value)
{
rgb[j] = value;
}
ich weiß nicht weiter... was ich möchte ist folgendes:
ich möchte die farbwerte red, green, blue jedes pixels einzeln als dreierkombi in eine matrix schreiben (also ein eindimensionales array besser gesagt). dann möchte ich dieses ausgeben, ziel ist es, nachher die verschiedenen arrays auf gleichheit zu prüfen...
wenn ich nun das programm starte zeigt er mir folgenden fehler:
java.lang.ArrayIndexOutOfBoundsException (in der zeile "rgb[j] = value;" der funktion setElem) aber warum?!
ich hoffe mir kann jemand helfen!
vielen dank im voraus!
lg katha