我在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;
}
答案 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);