从Bitmap对象获取所有像素数据

时间:2017-05-21 22:18:59

标签: c# bitmap

我想用像素数据填充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:参数必须是   积极的和&lt;宽度。

我使用的所有位图都是20x20px。

1 个答案:

答案 0 :(得分:1)

请检查您要加载的图像的高度和宽度,如果图像是20x20,则必须从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)
        {