C# 显示和保存二维灰度像素阵列

C# 显示和保存二维灰度像素阵列,c#,image,bmp,C#,Image,Bmp,我有一个黑白线传感器,它给我扫描数据的灰度值(0-255)。我想将这些值保存为位图(.bmp),并在图片框中显示它们。我当前的代码如下所示: PixelFormat px = PixelFormat.Canonical; Bitmap bitmap = new Bitmap(width, height, px); int[,] GreyScaleArray2D = new int[width,height]; for (int y

我有一个黑白线传感器,它给我扫描数据的灰度值(0-255)。我想将这些值保存为位图(.bmp),并在图片框中显示它们。我当前的代码如下所示:

        PixelFormat px = PixelFormat.Canonical;
        Bitmap bitmap = new Bitmap(width, height, px);
        int[,] GreyScaleArray2D = new int[width,height];

        for (int yy = 0; yy < (lb_SpReceivedData.Count-width); yy += width)
        {
            for (int xx = 0; xx < width; xx++)
            {
                GreyScaleArray2D[xx,tmp] = lb_SpReceivedData[(yy+xx)];
            }
            tmp++;
        }

        for (int y = 0; y < height; y++)
        {
           for (int x = 0; x < width; x++)
           {
              int red = GreyScaleArray2D[x,y]; // read from array
              int green = GreyScaleArray2D[x,y]; // read from array
              int blue = GreyScaleArray2D[x,y]; // read from array
              bitmap.SetPixel(x, y, Color.FromArgb(0, red, green, blue));
           }
        }

        pictureBox1.Image = bitmap; 
到位图构造函数

  • 问题)即使我将位图传递到我的picturebox,picturebox中也没有任何内容!我做错了什么


  • 谢谢

    只需使用位图的2参数构造函数即可。它可能不允许您使用Canonical,因为位图不支持alpha
         PixelFormat.Canonical