Как преобразовать изображение в массив байтов в платформе uwp
Мне нужно преобразовать изображение в массив байтов, чтобы сохранить его в базе данных. и еще мне нужно преобразовать этот массив обратно в изображение. Я провел исследование google, но не смог найти решение, потому что в платформе UWP некоторые api недоступны.
1 ответ:
Я нашел решение из этих статей, как говорит theoutlander.
Для преобразования изображения в байт[] я собираюсь использовать метод 'OpenSequentialReadAsyn ()' файла памяти.
Предположим, что наш образ - это "файл". чтобы преобразовать его в массив байтов, выполните следующие действия
using (var inputStream = await file.OpenSequentialReadAsync()) { var readStream = inputStream.AsStreamForRead(); var byteArray = new byte[readStream.Length]; await readStream.ReadAsync(byteArray, 0, byteArray.Length); return byteArray; }Чтобы преобразовать байт[] обратно в изображение, выполните следующие действия,
using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream()) { using (DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0))) { writer.WriteBytes(this.byteArray); await writer.StoreAsync(); } var image = new BitmapImage(); await image.SetSourceAsync(stream); return image; }
Comments