2011-11-26 79 views
0

我想將varbinary轉換爲我的silverlight項目中的圖像。在Silverlight中將varbinary轉換爲圖像(第2部分)

首先我從服務中的數據庫中獲取二進制文件。

[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轉換爲圖像,用在計算器上找到代碼:

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

但事實證明,Silverlight的Image沒有一個.FromStream,我嘗試了所有的在this thread發現的例子,但沒有人在silverlight工作。

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

所以是的,我有點失落,我不知道該怎麼做。 關於如何在silverlight中做到這一點的任何想法?

回答

1

免費提供你差不多吧。下面的代碼應該是所有您需要:

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

其中imageDatabyte[]類型和newImage的是要更新的圖像。

+0

謝謝!這工作! :D 有什麼辦法可以在方法中返回源代碼?我想創建一個單獨的類來處理轉換,所以我只需要源代碼。 – Schoof

+0

我只能返回bitmapImage,這似乎工作,謝謝! :) – Schoof

1

你應該看看WriteableBitmap。

有一個相當不錯的擴展集上codepelexNuget

+0

感謝您的有用鏈接,但我設法使它與以前的答案一起工作。 – Schoof