2012-07-20 1 views
0

Image를 생성하는 라이브러리가있는 ASP.NET 응용 프로그램이 있습니다.C#의 httpHandlers에서 동적 이미지를로드하는 방법

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

이 해당 경로에 이미지를 생성하는 코드를 링크 :의 Web.config에서

을 내가 > 섹션 그래서 같은 < httpHandlers의 선언을 다음과 같이 그것은 설정 그런 다음 내 .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 컨트롤을 사용하지 않고도 코드에서 모든 것을 트리거 할 수있는 방법을 찾을 수 없었습니다.

답변

0

당신은 ASP : 이미지를 가지고 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); 
    } 
} 
+0

'System.Drawing.Image.FromFile ("My.image.aspx"를 사용할 수 있습니다 뒤에 코드에서 ID) '는 파일을 찾을 수 없다고 말하기 때문에 이미지를로드하지 않습니다. ASP.NET Image 컨트롤에는 FromFile 속성이 없으며 마지막으로 ASPX의 이미지는 System.Web.UI.WebControls 라이브러리의 다른 유형의 이미지입니다. – user1048281

+0

@ user1048281 귀하의 권리는 내가 추적 한 부분을 가지고 있습니다. 답변을 업데이트했습니다. – HatSoft

+0

글쎄요,이 이미지가로드됩니다. 하지만 출력을 위해 System.Drawing.Image 형식으로 이미지 파일을 저장하려고합니다. 편집 : 이것은 또한 내가 이미하고있는 것과 똑같은 것입니다 ... 코드 뒤에서. – user1048281