保存数据后C#winform picturebox图像丢失

时间:2013-05-14 20:55:43

标签: c#-4.0 dll picturebox

我有一个winform应用程序,其中有一个pictureBox显示一个非常大的图像(2550by4500)。使用不安全指针从字节数组转换此位图图像,如下所示:

     Bitmap img;   
     unsafe
     {
         fixed (Byte* intPtr = &outBuffer[0])
         img = new Bitmap(_width, _height, _width * 3, System.Drawing.Imaging.PixelFormat.Format24bppRgb, new IntPtr(intPtr));
     }
到目前为止,没有问题。显示图像后,我使用此DLL(http://www.mathworks.com/matlabcentral/fileexchange/16319)将像素值保存到Matlab .mat文件中。保存没有问题。

然而,pictureBox中的图像变得像一个嘈杂的黑白图像,原始图像完全丢失。

我尝试的事情:

  1. 在监视窗口中添加了位图,发现所有像素值都已更改。位图已损坏。
  2. 每次保存后再次进行不安全的转换,但是,它带来了另一个问题:“Drawing.dll中的AccessViolationException”。
  3. 必须与.mat保存部分有关,因为如果我跳过保存,则完全没问题。但我不知道他们是如何相关的,记忆力?我试过一个尺寸较小的图片,没问题。所以我假设“save .mat”进程损坏了Bitmap?

    任何想法都会有所帮助!谢谢

0 个答案:

没有答案