我想获取图像的rgb的每个值并将值保存到2D数组。数组应该是这样的。
int [] [] rgb = {{r,g,b}, {r,g,b}, .... }
这是我的代码
public int[][] extractImg(Bitmap photo) {
//define the array size
int [][] rgb = new int[photo.getWidth()][photo.getHeight()];
for(int i=0; i < photo.getWidth(); i++)
{
for(int j=0; j < photo.getHeight(); j++)
{
//get the RGB value from each pixel and store it into the array
Color c = new Color(photo.getPixel(i, j), true);
rgb[i][j] = { c.getRed(), c.getGreen, c.getBlue};
}
}
return rgb;
}
我收到错误消息“数组常量只能用于初始值设定项”。有没有办法将rgb矩阵保存到数组?
答案 0 :(得分:0)
您不能使用以下内容为数组赋值:
rgb[i][j] = { c.getRed(), c.getGreen, c.getBlue};
除了语法不正确之外,你还忘记了getGreen和getBlue颜色函数的大括号()。数组不会以您指定的方式存储rgb值。如果您存储了一组Color值,如下所示:
public Color[][] extractImg(Bitmap photo) {
//define the array size
Color [][] rgb = new Color[photo.getWidth()][photo.getHeight()];
for(int i=0; i < photo.getWidth(); i++)
{
for(int j=0; j < photo.getHeight(); j++)
{
//get the RGB value from each pixel and store it into the array as Color
rgb[i][j] = new Color(photo.getPixel(i, j), true);
}
}
return rgb;
}