我有一個二維double[,] rawImage
數組表示一個灰度圖像,數組中的每個元素都有一個從0〜1的有理數值,我需要 將它轉換爲Bitmap
圖像,我用下面的代碼:從雙二維陣列創建位圖
private Bitmap ToBitmap(double[,] rawImage)
{
int width = rawImage.GetLength(1);
int height = rawImage.GetLength(0);
Bitmap Image= new Bitmap(width, height);
for (int i = 0; i < height; i++)
for (int j = 0; j < YSize; j++)
{
double color = rawImage[j, i];
int rgb = color * 255;
Image.SetPixel(i, j, rgb , rgb , rgb);
}
return Image;
}
但它似乎太慢了。 我不知道是否有方法使用short
數據類型的指針來完成上述工作。
如何使用指針來編寫更快的代碼來處理此函數?
['bitMap.LockBits'](http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx) –
SetPixel鎖定爲每個像素的整個圖像。如果您鎖定整個圖像,則可以使用不安全的代碼寫入圖像中的每個值。 http://stackoverflow.com/questions/7768711/setpixel-is-too-slow-is-there-a-faster-way-to-draw-to-bitmap – MrFox