Я реализую универсальное приложение Windows в Windows 10, используя MVVM. У меня есть средство выбора файлов, позволяющее мне выбрать изображение. Это изображение отображается в элементе управления изображением. Источник элемента управления изображением привязан к свойству в моей модели представления. Это свойство представляет собой массив байтов. Мне нужен конвертер для преобразования BitmapImage в массив байтов. Я прочитал много вещей, но не могу найти что-то работающее. Я нашел интересные материалы на https://writeablebitmapex.codeplex.com/, но если я хочу использовать этот пакет мне нужен WriteableBitmap, а не BitmapImage. Спасибо заранее за вашу помощь.
Как преобразовать BitmapImage в WriteableBitmap в универсальном приложении для Windows 10?
Ответы (1)
Вы можете загрузить изображение в объект WriteableBitmap прямо из файла.
var filePicker = new FileOpenPicker();
filePicker.FileTypeFilter.Add(".jpg");
var result = await filePicker.PickSingleFileAsync();
if (result != null)
{
using (IRandomAccessStream stream = await result.OpenAsync(FileAccessMode.Read))
{
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
WriteableBitmap bmp = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
bmp.SetSource(stream);
// show the image in the UI if you want.
MyImage.Source = bmp;
}
}
Таким образом, у вас есть WriteableBitmap, и вы можете использовать библиотеку WriteableBitmapEx.
person
Igor Ralic
schedule
13.11.2015
Это очень хороший обходной путь. Спасибо за помощь. Я действительно ценю !
- person Zen Christophe; 13.11.2015
Есть идеи, как этого добиться, не проходя мимо средства выбора файлов??
- person AymenDaoudi; 19.03.2016