2010-04-27 2 views
0

나는 바이트 배열의 형태로 동적 이미지를 얻고있다. 그리고 나는 그것을 웹 페이지, 선호 ImageControl에서 보여주고 싶습니다.동적 이미지 컨트롤

나는 http 핸들러를 생성하고 이미지 스트림을 얻는 방법을 알고 있습니다. 하지만 나는 여기에 대한 논리가 다른 곳에서 수행되기 때문에 여기서는 할 수 없다.

이렇게하는 데 적합한 방법이 없습니다.

미리 감사드립니다.

답변

0

마지막으로 중간 접근 방식을 취했습니다.

코드 뒤에 이미지 객체가 있습니다. 그 주요 웹 페이지에서 shwoing.

하나의 임의 키 (내 경우 GUID)를 사용하여 캐시에 해당 개체를 추가 할 예정입니다. 그런 다음 ~/GetImage.ashx? id = [GUID]

과 같은 URL을 생성합니다.이 URL에 액세스하면 캐시의 이미지가 저장됩니다.

참고 : 나는 절대 2 분으로 설정 자기 만료와 함께 캐시 할 이미지를 추가하고

  1. . 수동 개입없이 캐시가 비어 있고 다른 처리가 발생할 수있는 충분한 시간을 확보합니다.
  2. 2 번에서 언급 한 것과 같은 이유 때문에 세션 캐시가 사용되었습니다. 수동으로 제거해야 할 수도 있습니다.

물론 나는 더 나은 해결책을 찾고 있습니다.

+0

사용자가 페이지를로드하는 데 2 ​​분 이상 걸리는 경우 어떻게해야합니까? 휴대 기기는 다른 앱으로 전환 할 때 '일시 중지'하는 경우가 많으며 이로 인해 다시로드 할 때 이미지를 사용할 수 없게됩니다. [동적 이미지 처리를위한 httpmodules이 있습니다.] (http://imageresizing.net). –

+0

언급 된 httpmodule은 이미 존재하는 이미지의 크기를 조정합니다. 여기 우리는 memnory에서 Image Object를 다루고있었습니다. 응용 프로그램에서 Image Object가 처리되지 않고 Image Control에서도 표시해야합니다. 현재 응용 프로그램에서는 이미지를 파일로 저장할 수 없으므로 경로를 직접 지정할 수 없습니다. 그것이 허용 되었다면, 나는 오랜 기간 후에 직접 경로를주고 이미지를 제거 할 수있었습니다. 이미지를 유지하는 것은 캐시가 비싸므로 일정한 간격 후에 제거해야했습니다. 애플리케이션 요구에 따라 간격을 수정할 수 있습니다. – BigBoss

+0

실제로 [the httpmodule] (http://imageresizing.net)은 이미지가 물리적으로 존재하지 않아도됩니다. 2- 메소드 인터페이스 (IVirtualImageProvider)를 구현하고 가상 파일을 원하는대로 전달할 수 있습니다. 그러나 최상의 솔루션을 찾을 수 있도록 이미지의 출처에 대한 세부 정보가 필요합니다. –

0

바이트 배열을 처리기의 스트림으로 변환하고 바이트를 정상적으로 보낼 수 있습니다. 여기에 좋은 게시판이 있습니다 : Creating a byte array from a stream

+0

예, 바이트 배열을 이미지 스트림으로 변환하며 이미지 객체에있을 수 있지만이를 웹 페이지에 표시하는 방법과 이미지 URL을 이미지 컨트롤에 할당하는 방법입니다. – BigBoss

+0

이 프로세스는 여기에 잘 설명되어 있습니다. http://stackoverflow.com/questions/887985/create-png-image-with-c-httphandler-webservice – cortijon

+0

더 잘 설명 할 필요가 있습니다. 이미 바이트 배열을 가지고 있거나 이미지 객체를 말할 수 있습니다. 이제는 ImageControl에서 이미지를 웹 페이지에 표시해야합니다. 기본적으로 HttpHandler를 사용할 수 없기 때문에 전체 이미지를 쿼리 문자열로 전달해야 할 수도 있습니다. – BigBoss