我有一个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);
}
}
答案 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);
}
}