呼び出し元の関数にピクセルを返したいのですが、最後の値のみが取得されます。つまり、値をオーバーライドします...
get_pixel_info() メソッドは getPixelData() を呼び出しています。getPixelData() メソッドでは、最初のピクセルの rgb の値が rgb[] 配列に格納されており、rgb が返されます。これは、for ループが再び敵を getPixelData() メソッドに制御するためです。 1 番目のピクセルの 2 番目のピクセルの時間オーバーライド値など..すべてのピクセルのすべての値が必要ですが、1 しか得られません
ピクセル rgb の値は呼び出し元の関数に返される必要があります pls help
public static int[] get_pixel_info()
{
int[] rgb={0};
int[][] rgb2 = new int[0][0];
BufferedImage img;
try
{
img = ImageIO.read(new File(IMG));
int[][] pixelData = new int[img.getHeight() * img.getWidth()][3];
int counter = 0;
for(int i = 0; i < img.getWidth(); i++)
{
for(int j = 0; j < img.getHeight(); j++)
{
rgb = getPixelData(img, i, j);
for(int k = 0; k < rgb.length; k++)
{
pixelData[counter][k] = rgb[k];
}
counter++;
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
return rgb;
}
public static int[] getPixelData(BufferedImage img, int x, int y)
{
int argb = img.getRGB(x, y);
int rgb[] = new int[] {
((argb >> 16) & 0xff), //red
(argb >> 8) & 0xff, //green
(argb ) & 0xff //blue
};
System.out.println("rgb: " + Integer.toBinaryString(rgb[0]) + " " + Integer.toBinaryString(rgb[1]) + " " + Integer.toBinaryString(rgb[2]));
return rgb;
}