Кроме того, вам на самом деле не нужно это преобразование (поскольку вы можете использовать BitmapFrame везде, где вы в противном случае используете BitmapImage), вы можете напрямую декодировать BitmapImage из закодированного растрового изображения в байтовом массиве.
Нет необходимости явно использовать BitmapDecoder.Когда вы присваиваете Stream свойству StreamSource
BitmapImage, фреймворки автоматически используют соответствующий декодер.Вы должны позаботиться о том, чтобы установить BitmapCacheOption.OnLoad
, когда поток должен быть закрыт сразу после создания BitmapImage.
Image = new BitmapImage();
using (var stream = new MemoryStream(encodedimage))
{
Image.BeginInit();
Image.CacheOption = BitmapCacheOption.OnLoad;
Image.StreamSource = stream;
Image.EndInit();
}
Image.Freeze();