Байт [] для преобразования изображения в приложении Windows Phone 7 - PullRequest
0 голосов
/ 16 апреля 2011

Я делаю приложение для Windows Phone 7. Приложение обращается к изображению из базы данных (Sql server 2008).Данные хранятся в типе данных «изображение». Я хочу, чтобы отобразить изображение.я использую следующий код

     public object Convert(object value, Type targetType, object parameter,           System.Globalization.CultureInfo culture)
    {
        byte[] data;
        BitmapImage empImage = new BitmapImage(); 
        Stream mm;
        data = (byte[])value;
        mm = new MemoryStream(data);
        mm.Position = 0;
        BinaryReader BR = new BinaryReader(mm);
        byte[] image=BR.ReadBytes(data.Length);
        mm = new MemoryStream(image);
        //empImage.SetSource(mm);
        return empImage;
    }

Но в строке с комментариями есть ошибка "Unspecified" (empImage.SetSource (mm);).

Пожалуйста, помогите мне ......

1 Ответ

0 голосов
/ 16 апреля 2011

BitmapImage.SetSource принимает Stream (вы можете опустить CreateOptions, если вам не нужно сразу обращаться к байтам):

public object Convert(object value, Type targetType, object parameter,
       System.Globalization.CultureInfo culture)
{
    byte[] data = (byte[])value;

    using (MemoryStream stream = new MemoryStream(data))
    {
        BitmapImage image = new BitmapImage
        {
            CreateOptions = BitmapCreateOptions.None
        };

        image.SetSource(stream);

        return image;
    }
}

Кроме того, я не думаю, что IValueConverter является правильным местом для такого рода кода.

И, наконец, тип базы данных image устарел в пользу varbinary(MAX)

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