0

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

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

<add path="My.image.aspx" verb="GET" type="MyProject.Handlers.MyImageHandler, MyProject" validate="false"/>

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

<asp:Image ImageUrl="My.image.aspx" BorderWidth="0" ID="myImage" runat="server"/>

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

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

System.Drawing.Image img = System.Drawing.Image.FromFile("My.image.aspx");

但没有运气。有没有一种正确的方法可以从我指定的 httpHandler 后面的代码中加载这个图像?

编辑:我找到了一种解决方法,因为我无法从后面的代码中加载图像。相反,我刚刚使用 <asp:Image> 控件在页面上加载文件并触发处理程序。当处理程序创建 System.Drawing.Image 文件时,我可以将其添加到 Session 对象中,以便稍后在该页面上使用。但是,在不使用前端 ASP 控件的情况下,我仍然无法从后面的代码中触发所有这些。

4

1 回答 1

0

你 asp:image 有和 id 作为 myImage

所以在后面的代码中你可以这样使用

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);
   }
}
于 2012-07-20T15:35:28.767 回答