首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在httpHandlers中加载C#动态图像

如何在httpHandlers中加载C#动态图像
EN

Stack Overflow用户
提问于 2012-07-20 15:30:44
回答 1查看 1.8K关注 0票数 0

我有一个具有生成图像的库的ASP.NET应用程序。它的设置如下:

在Web.config中,部分中有一个声明,如下所示:

代码语言:javascript
运行
复制
<add path="My.image.aspx" verb="GET" type="MyProject.Handlers.MyImageHandler, MyProject" validate="false"/>

这将代码链接到生成图像的路径,然后在我的.aspx页面中使用该路径,如下所示:

代码语言:javascript
运行
复制
<asp:Image ImageUrl="My.image.aspx" BorderWidth="0" ID="myImage" runat="server"/>

正常查看此页时,图像将正确加载。

但是,我需要将这个图像输出到一个PDF文件中,但是由于PDF不能正确地使用该URL解释页面HTML (说它找不到资源,因为这些文件仅限于解释基本的HTML/CSS),所以我想尝试将图像加载到后面的代码中并以这种方式输出到PDF中。但是,我不知道如何在后面的代码中加载这个图像。我尝试了以下几点:

代码语言:javascript
运行
复制
System.Drawing.Image img = System.Drawing.Image.FromFile("My.image.aspx");

但没有运气。是否有适当的方法从我指定的httpHandler后面的代码中加载此图像?

编辑:--我找到了一个解决办法,因为我无法从后面的代码中加载图像。相反,我只是使用控件加载页面上的文件并触发处理程序。当处理程序创建System.Drawing.Image文件时,我能够将它添加到会话对象中,以便稍后在该页面上使用。但是,如果不使用前端ASP控件,我仍然无法从后面的代码中找到触发所有这些的方法。

EN

回答 1

Stack Overflow用户

发布于 2012-07-20 15:35:28

you :图像具有和id为myImage

所以在后面的代码中,您可以这样使用它。

代码语言:javascript
运行
复制
using (Bitmap theImage = new Bitmap("My.image.aspx"))
{
   using(MemoryStream stream = new MemoryStream())
   {
      theImage .Save(stream , System.Drawing.Imaging.ImageFormat.Png);
      stream .WriteTo(context.Response.OutputStream);
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11582424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档