2010-08-12 111 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