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