Записать BitmapImage в MemoryStream

181
03 ноября 2017, 07:59

Как записать изображение BitmapImage в MemoryStrem в WPF, если не использовать System.Drawing.

Answer 1

Чтобы записать BitmapImage в MemoryStream можно воспользоваться абстрактным классом BitmapEncoder, а точнее одной из его реализаций.

Нас интересует метод Save

[System.Security.SecurityCritical]
public virtual void Save (System.IO.Stream stream);

который как раз и позволяет записать растровое изображение в указанный поток.

Пример взят из ответа chrfinна SO к вопросу BitmapImage to byte[]

byte[] data;
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmapImage));
using(MemoryStream ms = new MemoryStream())
{
    encoder.Save(ms);
    data = ms.ToArray();
}

Конечно, вместо JpegBitmapEncoder можно использовать любой другой BitmapEncoder, который бы был более подходящим под задачу.

READ ALSO
Изменить содержимое input, но не мгновенно

Изменить содержимое input, но не мгновенно

Суть такова, что есть input с значением, мне нужно его значение изменить с помощью jsЯ знаю как это сделать, но мне нужно чтобы содержимое inputa...

360
Найти пару, игра [требует правки]

Найти пару, игра [требует правки]

Хочу сделать игру на подобие этой http://wwwigraemsa

242
Как получить прошлый месяц?

Как получить прошлый месяц?

Есть рабочий код, который, отнимает от сегодняшнего, 1 месяц somedatesetMonth(somedate

315
JS, что-то не так с циклом

JS, что-то не так с циклом

Не работает, пишет "undefined"Подскажите, пожалуйста, что не так

227