Search code examples
c#silverlightimagebytevarbinary

Converting varbinary to image in silverlight (part 2)


I am trying to convert a varbinary to an image in my silverlight project.

First I get the Binary from my database in my service.

    [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();

Then I try to convert the varbinary to an image, using code found on StackOverflow:

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

But as it turns out, the silverlight Image does not have a .FromStream, I tried all the examples found in this thread but NONE of them work in silverlight.

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

So yeah, I'm kinda lost and am not sure what to do. Any ideas on how to do this in silverlight?


Solution

  • You're almost right. The following code should be all you need:

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

    where imageData is of type byte[] and newImage is the image you want to update.