Исключение BitmapImage to Bitmap
Я использую для проекта функцию, которую я нашел в Stackru: /questions/958962/preobrazovanie-bitmapimage-v-bitmap-i-naoborot/958983#958983
Цель этой функции - преобразовать System.Windows.Media.Imaging.BitmapImage в System.Drawing.Bitmap.
public Bitmap BitmapImage2Bitmap(BitmapImage bitmapImage)
{
using (MemoryStream outStream = new MemoryStream())
{
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bitmapImage));
enc.Save(outStream);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);
return (new Bitmap(bitmap));
}
}
Он работает довольно хорошо (даже если он очень тяжелый), но он каждый раз выдает исключение, которое называется:Исключение: System.NotSupportedException в PresentationCore.dll
Кажется, что это происходит от строки:
enc.Save (outStream);
Есть ли способ заставить его исчезнуть?
Спасибо за вашу помощь!
1 ответ
Вы должны убедиться, что BitmapImage, который вы передаете, действителен. Согласно документации для BitmapEncoder.Save, ошибка, которую вы получаете, является результатом того, что число "Frames" меньше или равно нулю.
Убедитесь, что фрейм добавляется правильно и что ваш bitmapImage передается с правильными значениями.