我有一个672 * 472 * 3大小的阵列类型双(r-g-b通道的图像)的阵列。每个像素位置的值范围从0.000到5.0000。 我需要将数据显示为图片框上的图片。我怎么能在c#中做到这一点。从三维双阵列创建一个RGB图像
0
A
回答
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
你是什么意思的图片框? – 2010-08-12 10:04:40