从c#动态显示asp.net中的图像

时间:2013-01-07 09:30:35

标签: c# asp.net image wcf bytearray

我在asp.net网站的c#代码中动态创建控件。我想创建一个图像控件并显示一个从wcf服务获得的字节数组派生的图像。我试图将字节数组转换为图像并保存在具有以下代码的位置,但它不起作用。 任何人都可以帮助我!

 public System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
    return returnImage;
}

3 个答案:

答案 0 :(得分:5)

您只是错过了Save方法:

public string byteArrayToImage(byte[] byteArrayIn)
{
  string saveLocation = "<Path to save image to>"; // e.g. c:\mywebsite\image23.png
  MemoryStream ms = new MemoryStream(byteArrayIn);
  System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
  returnImage.Save(saveLocation);
  return saveLocation;
}

然后使用Server.MapPath将保存的文件位置的网址传递给asp:Image控件。

我应该提一下,如果你已经有一个字节数组 - 而不是创建一个image对象只是为了保存字节流 - 只需要输入字节流在ImageUrl控件的asp:image内,如下所示:

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);

答案 1 :(得分:3)

太好了。无需创建图像对象。 这对我有用:

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);

答案 2 :(得分:2)

尝试以下

File.WriteAllBytes(@"C:\test.jpg", BYTE_ARRAY_OF_IMAGE);