在图像中每隔8个像素填充一个颜色数组。 C#

时间:2011-01-01 00:30:29

标签: c# multidimensional-array rgb

我有一个512x280像素的图像。我想在矩阵中每隔8个像素填充一个64x35数组。

这就是我现在所拥有的:

        Color[,] imgArray = new Color[b.Width, b.Height];
        for (int y = 0; y < 35; y++)
        {
            for (int x = 0; x < 64; x++)
            {
                imgArray[x, y] = b.GetPixel(x, y);
            }
        }

但这只会是图像的上角。我如何改变循环,以便抓住每个第8个像素来填充数组?

编辑:我想我可能已经得到了它。有人可以读到这个并向我保证这是正确的吗?

        Color[,] imgArray = new Color[64, 35];
        for (int y = 0; y < 280; y+=8)
        {
            for (int x = 0; x < 512; x+=8)
            {
                imgArray[x, y] = b.GetPixel(x, y);
            }
        }

1 个答案:

答案 0 :(得分:2)

当你得到像素时,简单地将坐标乘以8:

Color[,] imgArray = new Color[64, 35];
for (int y = 0; y < 35; y++) {
  for (int x = 0; x < 64; x++) {
    imgArray[x, y] = b.GetPixel(x * 8, y * 8);
  }
}