BitmapImage из ByteArray / MemoryStream: формат пикселей не поддерживается - PullRequest
0 голосов
/ 07 мая 2018

Я конвертирую 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?

...