Заполнение цветового массива каждым 8-м пикселем изображения.C # - PullRequest
0 голосов
/ 01 января 2011

У меня есть изображение размером 512x280 пикселей. Я хочу заполнить массив 64x35 каждым 8-м пикселем в матрице.

Вот что у меня сейчас есть:

        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 Ответ

2 голосов
/ 01 января 2011

Просто умножьте координаты на 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);
  }
}
...