2011-01-01 9 views
0

私は512x280ピクセルの画像を持っています。私は行列の8番目のピクセルごとに64x35の配列を作成したい。イメージの8番目のピクセルごとにカラー配列を配置します。 C#

 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

あなたのターゲットアレイに割り当てるとき8によってあなたのxとyのカウンターを分割する必要があります。 –

+0

このようにしますか? imgArray [x/8、y/8] = b.GetPixel(x、y); – Piper

+0

助けてくれてありがとう – Piper

答えて

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); 
    } 
} 
関連する問題