2010-04-06 7 views
0

ASP.NET 사용자 지정 웹 서버 컨트롤에서 즉석에서 System.Drawing.Bitmap을 생성하고 있는데이 비트 맵을 WebResource의 일부로 제공하고 싶습니다. 저장하지 않기 때문에 그것은 호스팅 컴퓨터에.ASP.NET의 WebResource에 비트 맵 포함

ASP.NET에서 생성 된 System.Drawing.Bitmap을 WebResource의 일부로 제공하도록 지시 할 수 있습니까? (따라서 "임베디드 리소스"로 지정)

+0

페이지에서이 '이미지'를 어떻게 나타 냅니까? – Lazarus

+0

그런 다음 WebResource URL을 사용하여 이미지에 대한 참조를 얻습니다. 예 :'/WebResource.axd? ... ' –

답변

2

HTTP 처리기를 사용하십시오. 핸들러는 기본적으로 서버에서 지정된 확장자를 가진 리소스를 요청할 때 실행되는 코드 조각입니다. 동적으로 생성 된 이미지가 필요하기 때문에 핸들러의 코드에서이를 수행하여 응답으로 리턴합니다. 정적 정보 만 포함 할 수 있기 때문에 포함 기능이 작동하지 않습니다. 여기에 몇 가지 링크가 있습니다 :

+0

+1 우수함, 정확하게 원했던 것. 문제와 관련하여 저를 시정 해 주셔서 감사합니다. 나는 나의 문제를 해결하기 위해 다음 기사를 사용했다 : http://www.codeproject.com/KB/custom-controls/CaptchaControl.aspx –

1

내가 한 그 HTTP 처리기없이 여러 ASP.NET 프로젝트에.

"Fingerprint.jpg"라는 이미지가 있고 네임 스페이스가 "MyNamespace"인 웹 컨트롤 라이브러리의 "Images"라는 하위 폴더에 이미지가 있다고 가정 해보십시오. 결과적으로 이미지의 계산 된 네임 스페이스는 "MyNamespace.Images"가됩니다. 빌드 액션 "임베디드 리소스"로 해당 이미지를 표시하십시오.

이제이 웹 컨트롤 라이브러리에 "MyNamespace.SampleWebControl"이라는 웹 컨트롤 클래스가 있다고 가정 해 보겠습니다.

[어셈블리 : System.Web.UI.WebResource ("MyNamespace.Images.Fingerprint.jpg", "이미지/JPG")]

AssemblyInformation.cs에서

I은 ​​각 이미지에 대해 같은 것을 첨가

위의 예에서 Fingerpint.jpg 이미지는 웹 컨트롤 라이브러리의 루트 디렉터리 바로 아래에 "Images"라는 폴더에 저장됩니다 ( ).

그런 다음 asp.net 페이지의 코드 숨김에서 당신은 다음과 같이 사용할 수 있습니다

string imgName = "MyNamespace.Images.Fingerprint.jpg"; 
Type ctrlType = typeof(MyNamespace.SampleWebControl); 
string imageUrl = Page.ClientScript.GetWebResourceUrl(ctrlType, imgName); 

을 그리고 당신은 이미지 컨트롤 또는 HTML IMG 태그에 이미지의 URL로 그 이미지 URL 값을 사용할 수 있습니다.