1

我在我的 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;
}
4

3 回答 3

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将保存的文件位置的 url 传递给asp:Image控件。

我应该提一下,如果您已经有一个字节数组 -而不是创建一个image仅用于保存字节流的对象- 只需将字节流放在控件的内部,ImageUrl如下asp:image所示:

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);
于 2013-01-07T09:34:05.943 回答
4

那很好。不需要创建图像对象。这对我有用:

image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn);
于 2013-11-19T13:01:18.883 回答
2

尝试以下

File.WriteAllBytes(@"C:\test.jpg", BYTE_ARRAY_OF_IMAGE);
于 2013-01-07T09:54:02.253 回答