来自ByteArray / MemoryStream的BitmapImage:不支持像素格式

时间:2018-05-07 16:54:46

标签: c# bitmapimage pixelformat

我正在从字节数组转换BitmapImage,它工作正常,除了一个特定的.tif文件。它在EndInit()中给出了一个例外:

  

不支持位图像素格式。 (HRESULT异常:0x88982F80)

用于将字节数组读取到BitmapImage的代码是:

public BitmapImage LoadImage(byte[] ImageData)       
    var image = new BitmapImage();
    using (var mem = new MemoryStream(imageData))
    {
        mem.Position = 0;
        image.BeginInit();
        image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
        image.CacheOption = BitmapCacheOption.OnLoad;
        image.UriSource = null;
        image.StreamSource = mem;
        image.EndInit(); //Exception here
    }
    image.Freeze();
    return image;
}

这是什么意思?图像在窗口中打开很好,因此它没有损坏或任何东西。有没有办法在EndInit之前将图像转换为支持的像素格式?

0 个答案:

没有答案