2017-05-21 3 views
-1

double[400]の配列にピクセルデータを埋めたいと思っています(下のコードを参照)。ビットマップオブジェクトからすべてのピクセルデータを取得

私は答えを探していて、まだ見つけていません。私の試みは次のとおりです。

Bitmap bm = (Bitmap) Image.FromFile(fileName); 
numberVisual.Image = bm; 
long overallIteration = 0; 

for (long i = 0; i <= 20/*bm.Width*/; ++i) 
{ 
    for (long h = 0; h <= 20/*bm.Height*/; ++h) 
    { 
     input[/*(i * h)*/overallIteration] = 
      bm.GetPixel((int)h, (int)i) != Color.White ? 0 : 1; 
     ++overallIteration; 
    } 
} 

それは

bm.GetPixel System.ArgumentOutOfRangeExceptionが上の例外を放つ:パラメータは 正と<幅でなければなりません。

私が使用しているすべてのビットマップは20x20pxです。あなたの画像が20×20である場合

+2

変更<= <へ! (C#はゼロベースです!) – TaW

答えて

1

高さとあなたがロードされている画像の幅を確認してください、あなたは右のコードを0から19までではなく、0から20

に反復する必要が

for (long i = 0; i < 20; ++i) 
    { 
     for (long h = 0; h < 20; ++h) 
     { 

間違ったコード

for (long i = 0; I <= 20; ++i) 
    { 
     for (long h = 0; h <= 20; ++h) 
     { 
関連する問題