2012-11-10 33 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); 
    } 
}