将DLL中的图像放到网页上

时间:2012-06-08 12:16:40

标签: c# image dll web

我如此坚持我认为很容易的事情。 我有一个返回Image对象的DLL。 我只是想弄清楚如何在网页上显示该图像。

我尝试了几种方法,并且谷歌有一百万种不同的版本。

是不是可以将Image对象绑定到页面上的元素,如HtmlImage或简单的img?

或者我需要将图像转换为流吗?还是位图?我真的被卡住了!

任何帮助表示赞赏.....

V

3 个答案:

答案 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/>中的路径。