我有一个返回Image
的方法。
如何将Image
分配给我的ImageButton
控件,以便设置该图像?
答案 0 :(得分:2)
由于您正在处理HTML,因此您需要将Image保存到文件中,然后在ImageButton的ImageUrl属性中使用该文件。
答案 1 :(得分:1)
我相信ImageButton会获取Image的路径,而不是实际的Image对象,因为浏览器会将其呈现为标记。
你可以做的是将图像保存到磁盘,从方法返回图像的路径,然后
<asp:ImgageButton id="imgButton1" runat="server" imageUrl="<%= GetImageUrl()>" />
上述语法并不准确,可能是“&lt;%Response.Write(GetImageUrl())&gt;”但是你得到了图片
答案 2 :(得分:0)
如果此方法返回Image对象,则需要将图像保存到Web服务器上的物理位置(如Server.MapPath(“〜/ images /”))。然后,您需要将ImageButton控件的ImageUrl属性设置为此位置。
如果此方法返回图像文件的相对路径,只需将ImageButton的ImageUrl属性设置为方法返回的路径。
答案 3 :(得分:0)
您必须将图像写入文件并将图像按钮指向图像文件 或者你可以有一个网页,在响应中返回图像并将其用作ImageUrl
这样做的原因是你的ImageButton只是呈现为HTML,它不支持附加图像ATM。
答案 4 :(得分:0)
您可以尝试以下方法:
1)首先,从图像中获取二进制数据:
public byte[] ImageToByteArray(System.Drawing.Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
2)二次使用Inline Images with Data URLs想法:
内联图像使用数据URI方案 将图像直接嵌入到Web中 页面。根据RFC 2397的定义,数据 URI旨在嵌入小数据 项目作为“即时”数据,就像它们一样 在外部引用。运用 内联图像可以保存HTTP请求 外部引用的对象。
System.Drawing.Image image = GetImageFromSomewhere(...);
byte[] imageData = ImageToByteArray(image);
string imageBase64 = Convert.ToBase64String(imageData);
string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
imgButton.Src = imageSrc;
但不幸的是,这对IE5-7不起作用(应该在IE8中运行)。