我被困在我认为很容易的事情上。我有一个返回 Image 对象的 DLL。我只是不知道如何在网页上显示该图像。
我尝试了几种方法,并在谷歌上搜索了一百万种不同的变体。
是否不能只将 Image 对象绑定到页面上的元素,如 HtmlImage 或简单的 img?
还是我需要将图像转换为流?还是位图?我真的被困住了!
任何帮助表示赞赏......
五
使用 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 集合中获取它
它不像绑定那么简单。在客户端,图像作为单独的 GET 请求从 Web 服务器检索,这意味着您必须具有解析为图像的 URL。正如 Asif 建议的那样,另一种选择是将您的图像作为 Base64 字符串嵌入 HTML 中,这对于共享图像来说是一种不好的做法(请参阅 Steve B 的评论)。
您必须提供一个 URL(在 MVC 中返回图像文件的路由,或者具有适当内容类型和 WebForms 中的 Response.Write 的自定义页面),或者嵌入 html。
编辑:还有第三个选项涉及自定义 HTTP 处理程序。这些具有绕过应用程序框架并几乎直接从 Web 服务器提供内容的优势,请参阅MSDN。
将您的图像转换为 base64 字符串,然后将其设置在<img/>
标签中。
<img/>
可以用base64字符串显示图像。
或者,您可以保存图像并使用<img/>
.