Конвертировать ImageSource в BitmapImage - WPF - PullRequest
10 голосов
/ 28 мая 2009

Я использую библиотеку классов, которая генерирует большой ImageSource,> 3000x3750 пикселей. Я хотел бы преобразовать этот ImageSource в BitmapImage, чтобы я мог использовать преимущества DecodePixelWidth или DecodePixelHeight вместо изменения его размера при каждом создании этого изображения.

Сначала мне нужно отобразить это изображение для пользователя, и большинство пользователей имеют разрешение экрана 1024x768, для этого я привязываю этот ImageSource к элементу управления Image, но можно заметить, насколько он «тяжелый» .

Как я могу это сделать? Или какое решение лучше для этого случая?

спасибо!

Ответы [ 2 ]

19 голосов
/ 20 июня 2012

Я знаю, что это старый пост, но попробуйте сделать:

myBitmapImage = myImageSource as BitmapImage;

Это хорошо работает.

4 голосов
/ 28 мая 2009

Тип BitmapImage наследует BitmapSource и в конечном итоге ImageSource (оба из которых являются абстрактными классами). Вам нужно проверить, каков фактический тип вашего объекта, то есть проверить object.GetType().Name. Если вам повезло, возможно, он действительно возвращает объект BitmapSource, и вам просто нужно привести его к этому типу, прежде чем вы сможете использовать его как таковой.

...