从三维双阵列创建一个rgb图像

时间:2010-08-12 10:00:10

标签: c# image

我有一个672 * 472 * 3大小的double类型(图像的r-g-b通道)。每个像素位置的值范围为0.000至5.0000。 我需要将数据显示为图片框上的图像。我怎么能在c#中做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用SetPixel()

创建一个新的Bitmap对象并根据数组中的数据设置像素

见这里:

http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setpixel.aspx

您必须使用两个循环遍历数组并将0-5范围转换为0-255以创建颜色对象。

然后您可以简单地将位图分配给PictureBox的Image-Property。

这是否足够具体?

编辑:

您可以通过简单地除以5并将每个组件乘以255来转换范围为0.0000到0.5000的双打。 e.g。

bmpBitmap.SetPixel(iX, iY, 
Color.FromArgb((int)(arArray[iX, iY, 0] / 5 * 255), 
(int)(arArray[iX, iY, 1] / 5 * 255), 
(int)(arArray[iX, iY, 2] / 5 * 255)
);

您可能需要调整数组索引。