2010-08-12 66 views
0

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

+0

你是什么意思的图片框? – 2010-08-12 10:04:40

回答

1

您可以创建一个新的位图对象,并设置像素根据您的阵列,使SetPixel)的数据(

在这里看到:

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

你将不得不迭代这个数组用两个循环并将0-5范围转换为0-255来创建一个颜色对象。

然后,您可以简单地将位图分配给PictureBox的图像属性。

这是否足够具体?

编辑:

您可以在双打的0.0000的范围由简单地通过五条分割,并与255为每个组件乘以转换为0.5000。例如

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) 
); 

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

+1

如果您需要比'SetPixel'更好的性能,请尝试使用['LockBits'](http://msdn.microsoft.com/zh-cn/library/5ey6h79d.aspx)。 – Mark 2010-08-14 13:00:15