Преобразование varbinary в изображение в silverlight (часть 2) - PullRequest
0 голосов
/ 26 ноября 2011

Я пытаюсь преобразовать varbinary в изображение в моем проекте silverlight.

Сначала я получаю двоичный файл из своей базы данных в моем сервисе.

    [OperationContract]
    public byte[] getAfbeelding(int id)
    {

        var query = (from p in dc.Afbeeldings
                     where p.id == id
                     select p.source).Single();

        byte[] source = query.ToArray();

Затем я пытаюсь преобразоватьvarbinary для изображения, используя код, найденный в StackOverflow:

    public static string convertToImage(byte[] source)
    {
        MemoryStream ms = new MemoryStream(source);
        Image img = Image.FromStream(ms);
        return img.Source.ToString();
    }

Но, как оказалось, у silverlight Image нет .FromStream, я пробовал все примеры, найденные в этот поток , но ни один из них не работает в серебряном свете.

'System.Windows.Controls.Image' does not contain a definition for 'FromStream'

Так что да, я немного растерялся и не уверен, что делать.Любые идеи о том, как сделать это в Silverlight?

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Ты почти прав.Следующий код должен быть всем, что вам нужно:

var bitmapImage = new BitmapImage();
bitmapImage.SetSource(new MemoryStream(imageData));
newImage.Source = bitmapImage;

, где imageData имеет тип byte[], а newImage - это изображение, которое вы хотите обновить.

1 голос
/ 26 ноября 2011

Вы могли бы взглянуть на WriteableBitmap.

есть довольно хороший набор расширений, свободно доступных на codepelex или Nuget

...