我如此坚持我认为很容易的事情。 我有一个返回Image对象的DLL。 我只是想弄清楚如何在网页上显示该图像。
我尝试了几种方法,并且谷歌有一百万种不同的版本。
是不是可以将Image对象绑定到页面上的元素,如HtmlImage或简单的img?
或者我需要将图像转换为流吗?还是位图?我真的被卡住了!
任何帮助表示赞赏.....
V
答案 0 :(得分:2)
使用Asp.Net WebForm,最简单的方法是创建自定义ashx文件。
在Visual Studio中,创建一个新的自定义处理程序(我不确定Visual Studio中模板的名称)。这将创建一个.ashx文件。
在这个处理程序的代码中,写一些像(手头没有VS来测试语法):
public void ProcessRequest(System.Web.HttpContext context)
{
byte[] raw;
using(var ms = new MemoryStream()){
Image myImage = GetFromDll();
myImage.Save(ms, ImageFormat.Png);
raw=ms.ToArray();
}
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(raw);
}
然后,在浏览器中,导航至http://yourserver/app/yourhandler.ashx.
如果要添加url参数,可以从Request.QueryString集合中获取
答案 1 :(得分:1)
它不像绑定那么简单。在客户端,图像作为单独的GET请求从Web服务器检索,这意味着您必须具有解析为图像的URL。正如Asif建议的那样,另一个选择是将您的图像作为Base64字符串嵌入HTML中,这对于共享图像来说是不好的做法(参见Steve B的评论)。
您必须提供一个URL(在MVC中返回图像文件的路由,或者在WebForms中具有适当内容类型和Response.Write的自定义页面),或者嵌入到html中。
编辑: 还有第三个选项涉及自定义HTTP处理程序。这些优点是绕过应用程序框架并几乎直接从Web服务器提供内容,请参阅MSDN。
答案 2 :(得分:0)
将图像转换为base64字符串,然后在<img/>
标记中进行设置。
<img/>
可以在base64字符串中显示图像。
或者,您可以保存图像并使用<img/>
中的路径。