我有一个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中的图像变得像一个嘈杂的黑白图像,原始图像完全丢失。
我尝试的事情:
必须与.mat保存部分有关,因为如果我跳过保存,则完全没问题。但我不知道他们是如何相关的,记忆力?我试过一个尺寸较小的图片,没问题。所以我假设“save .mat”进程损坏了Bitmap?
任何想法都会有所帮助!谢谢