如何使用2D数组循环像素?

时间:2011-03-15 17:04:24

标签: processing

例如:

loadPixels(); 
for (int i = 0; i < 240; i++) 
{
  for(int j =0; i < 240; j++)
  {
    color p = pixels[i][j];    // ERROR : The type of the expression must be an array 
                                  type but it resolved to int


    float cRed = 0.2989 * red(p);
    float cGreen = 0.5870 * green(p); 
    float cBlue = 0.1140 * blue(p);
    pixels[i][j] = color(cRed, cGreen, cBlue);
  }
}
updatePixels();

1 个答案:

答案 0 :(得分:1)

根据pixels documentation,像素是一维数组。所以你可能需要做一些像

这样的事情
int row = i;
int col = j;
int offset = row * width + col;
color p = pixels[offset];

不确定如何获得窗口的宽度,但这就是你需要做的事情(假设行按顺序存储在数组中)。