我有一個ushort像素數據(16位灰度值)數組,我試圖將它保存爲jpeg圖像。但是,我的代碼在「保存」命令中出現「GDI +中發生的一般錯誤」。我無法弄清楚如何解決這個問題。我保存的目錄是由我的應用程序創建的,我向其寫入了其他文件;所以我知道這不是一個權限問題。這可能是數據損壞問題嗎?我在做什麼錯誤的步驟中獲取ushort數據到Bitmap對象?因爲我有ushort數據我發現它花了一些努力來弄清楚如何將它放入Bitmap對象,並且我可能做錯了。當將位圖對象保存爲jpeg時,出現了「GDI +中發生的一般錯誤」#:
這裏是我的代碼:
Bitmap img = new Bitmap(width, height, PixelFormat.Format16bppGrayScale);
Rectangle rect = new Rectangle(0,0, width, height);
BitmapData picData = img.LockBits(rect, ImageLockMode.ReadWrite, img.PixelFormat);
IntPtr pixelStartAddress = picData.Scan0;
WriteableBitmap pic = new WriteableBitmap(width, height, 96.0, 96.0, System.Windows.Media.PixelFormats.Gray16, null);
int stride = (thumb.XSize * pic.Format.BitsPerPixel + 7)/8;
pic.WritePixels(new System.Windows.Int32Rect(0, 0, width, height), dataArray, stride, 0);
pic.CopyPixels(new System.Windows.Int32Rect(0,0,thumb.XSize, thumb.YSize),pixelStartAddress, dataArray.Length * sizeof(ushort), stride);
img.UnlockBits(picData);
img.Save(path, ImageFormat.Jpeg);
這整個事情已經變得非常沮喪。請幫忙?!
你是在單獨的線程中運行它嗎? – jjxtra 2009-06-15 19:37:18
是的,我在一個單獨的線程中運行它。你認爲這是問題嗎? – 2009-06-15 20:21:49