Исключение BitmapImage to Bitmap - PullRequest
       60

Исключение BitmapImage to Bitmap

0 голосов
/ 24 октября 2018

Я использую для проекта функцию, обнаруженную в StackOverflow: https://stackoverflow.com/a/6484754/9535211
Цель этой функции - преобразовать 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 Ответ

0 голосов
/ 24 октября 2018

Вы должны убедиться, что BitmapImage, который вы передаете, действителен.Согласно документации для BitmapEncoder.Save, ошибка, которую вы получаете, является результатом того, что число «Frames» меньше или равно нулю.

Убедитесь, что фрейм добавлен правильно и ваш bitmapImageпередается с правильными значениями.

...