Растровое изображение в байт [] - PullRequest
2 голосов
/ 06 августа 2011

У меня проблема с сохранением изображения (или bitmapImage или PhotoResult) в байт [] и последующим преобразованием его обратно в изображение.

Я нашел много постов в интернете об этом, но они не работают. В этом коде я получил Unspecifed error, когда я делаю это: SetSource ( bitmapImage.SetSource(ms);) и не знаю, как это сделать.

Я также хочу составить список устройств (каждое с именем, идентификатором, статусом и изображением, которое я буду представлять как byte[]) и сохранить его в IsolatedStorage, а затем прочитать и перечислить их (с образ конечно.)

Вот некоторый код, который у меня есть:

public void photoChooserTask_Completed(object sender, PhotoResult e)
{
    if (e.TaskResult == TaskResult.OK)
    {


        imageBytes = new byte[e.ChosenPhoto.Length];
        e.ChosenPhoto.Read(imageBytes, 0, imageBytes.Length);

       BitmapImage bitmapImage = new BitmapImage();

        MemoryStream ms = new MemoryStream(imageBytes);
        try
        {
            bitmapImage.SetSource(ms);
        }
        catch (Exception ea)
        {
            //
        }
            image1.Source = bitmapImage;

    }

1 Ответ

1 голос
/ 08 августа 2011

Вы пробовали класс Microsoft.Phone.PictureDecoder ?Он имеет функцию DecodeJpeg , которая возвращает экземпляр объекта WritableBitmap.

Другое решение заключается в использовании библиотеки расширений WritableBitmapEx , которая значительно упрощает обработку цифровых изображений иочень хорошая производительность.Нужная функция называется FromByteArray.

В обоих случаях вам придется использовать WriteableBitmap, потому что BitmapImage защищен от модификации.Поскольку BitmapImage и WriteableBitmap являются подклассами BitmapSource, вы можете легко отобразить их в элементе управления изображением.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...