2012-11-10 69 views
0
public System.Drawing.Image byteArrayToImage(byte[] byteArrayIn) 
{ 
    System.Drawing.Image returnImage = null; 

    try 
    { 
     MemoryStream ms = new MemoryStream(byteArrayIn); 
     returnImage = System.Drawing.Image.FromStream(ms); // parameter is invalid 

    } 
    catch (Exception ex) 
    { 
     string a = ex.ToString(); 
     // Response.Write("sfdsfn"); 
    } 

    return returnImage; 
} 

我在網上做了很多搜索,但我無法得到任何有用的答案對我? 提前如何將字節[]轉換爲asp.net中的圖像?

+0

鑑於你的問題是關於ASP.NET,你怎麼打算利用你的'Image'?你不能簡單地把它放在一個''元素中,如果這就是你的想法,我可以想到的替代用法不需要​​轉換到'System.Drawing.Image'。你最終的目標是什麼? – hvd

+1

你是什麼意思的參數是無效的?你能發佈你得到的異常嗎? –

回答

-1

任何help..thanks我花了2分鐘,發現這個:

ImageConverter ic = new ImageConverter(); 
Image img = (Image)ic.ConvertFrom(byteArray); 
0

您可以使用new Bitmap(ms)

Image returnImage = null; 
MemoryStream ms = new MemoryStream(byteArrayIn); 
returnImage = new Bitmap(ms); 

同樣,你可以使用Bitmap.FromStream(奇怪的是,我找不到它的文檔)。

+0

它是['Image.FromStream'](http://msdn.microsoft.com/en-us/library/93z9ee4x.aspx),但是'Bitmap.FromStream'將會像'Bitmap'從'Image'派生一樣工作。 – hvd

+0

@hvd - 好點。不過,我希望能在[位圖方法](http://msdn.microsoft.com/en-us/library/system.drawing.bitmap_methods.aspx)上找到它 - 還有其他的繼承成員。好吧。無論如何,這也表明OP的代碼應該工作。 – Kobi

+0

列出了繼承的實例成員,但我認爲它取決於基類的靜態成員是否可以在派生類中訪問,並且文檔是針對.NET的,而不是C#專用的。我確實同意,目前Bitmap.FromStream編譯但很難查找的情況還有待改進。 :) – hvd

2

簡單方法Image.FromStream

public Image byteArrayToImage(byte[] imgBytes) 
{ 
    using (MemoryStream imgStream = new MemoryStream(imgBytes)) 
    { 
     return Image.FromStream(imgStream); 
    } 
}