【发布时间】:2013-12-28 09:16:48
【问题描述】:
我想转换 byte[] 数组中的图像并再次将 byte[] 数组转换为图像并将该图像与图像控件绑定。请检查以下代码:
private void ShowImage()
{
var img = new System.Drawing.Bitmap(@"C:\Users\User\Desktop\Section-13.png");
byte[] image = imageToByteArray(img);
Image image1 = byteArrayToImage(image);
Image2.ImageUrl = image1.ToString();
}
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
图像控制:
<asp:Image ID="Image2" runat="server" />
正如您在上面的代码中看到的那样,我通过将图像转换为字符串将图像传递到 Image2.ImageUrl 中。我知道我做错了。请建议我是否走在正确的轨道上。
我在 GridView 中搜索并找到绑定图像,但上面的代码只是据我所知,我的目标只是简单地获取图像。提前致谢。
【问题讨论】:
-
image1.ToString() 是将图片转换为字符串数据,而不是存储url,所以我认为你应该先将图片存储到服务器路径,然后Image2.ImageUrl = imagepath。跨度>
-
您的意思是说我首先将图像存储在本地的任何临时位置,然后将该 URL 传递给图像控件。对吗?
-
是的,我认为这是最简单的方法,虽然别人说的可能有帮助,但我觉得太复杂了。