Как преобразовать изображение в массив байтов в платформе uwp



Мне нужно преобразовать изображение в массив байтов, чтобы сохранить его в базе данных. и еще мне нужно преобразовать этот массив обратно в изображение. Я провел исследование google, но не смог найти решение, потому что в платформе UWP некоторые api недоступны.

610   1  

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

    Ничего не найдено.