2012-03-21 5 views
0

이미지를 데이터베이스에 BLOB (Varbinary (max)) 형식으로 저장했습니다. .NET Bitmap TIFF로 이미지를 인코딩했습니다. 페이지에 이미지를 표시 할 때 콘텐츠 유형을 JPEG, GIF 등으로 설정할 수 있으며 이미지가 항상 웹 페이지에 올바르게 표시됩니다. 콘텐츠 형식을 TIFF로 설정하면 이미지가 올바르게 표시 될 것으로 기대합니다 (TIF로 인코딩 됨). Bitmap 클래스를 사용하고 있습니다. 내가 놓친 게 있니?.NET 비트 맵 개체

objCmd.CommandText = "SELECT Img FROM dbImage where id = 1 
       dr = objCmd.ExecuteReader 
       dr.Read() 

       screenshot = CType(dr("screenshot"), Byte()) 
       Response.ContentType = "image/tiff" 
       Response.BinaryWrite(screenshot) 
       Response.Flush() 
       Response.End() 

블롭 이미지는 TIFF로 부호화되었다 : 여기

일부 코드이다. 그러나 이미지를 추출 할 때 JPG 및 GIF로 표시됩니다. 예를 들어, response.contenttype을 "image/jpg"로 변경하면 여전히 표시됩니다. 문제는 그것이 아직도 표시되는 이유는 무엇입니까? 이미지 처리에 대한 많은 경험이 없습니다.

+0

Content-Type 헤더를 설정하여 이미지를 다시 인코딩하려고합니까? 왜 브라우저를 설정하지 않는 것이 좋을까요? @Boo, 고마워, –

+0

. 예, Content Type을 설정하고 BinaryWrite를 사용하여 이미지를 표시합니다 (테스트 전용 - 라이브 시스템에는 ASHX 이미지 처리기가 있음). – w0051977

+0

그래서 내가 물었던 질문은 당신의 "예"가 있다면 무엇이라고 말합니까? –

답변

0

아직도 표시되는 이유는 최신 브라우저가 이미지의 내용 유형 헤더를 무시하기 때문입니다 (문서가 아닌 관찰 및 테스트를 기반으로 함). 거의 모든 이미지의 처음 몇 바이트는 어떤 형식인지 알려줍니다. 콘텐츠 형식 헤더에 의존하는 대신 브라우저 (및 사용하는 그래픽 라이브러리)가이 바이트를 찾습니다 (.NET처럼).

웹 서버가 이미지를 다시 인코딩하지 않습니다.

+0

. 한 가지 더 전에이 질문을 닫습니다. TIFF 이미지가 웹 브라우저에 표시되지 않을 것이라고 생각했습니다 (IE8 및 Windows 7을 사용하고 있습니다). 그러나 데이터베이스에 저장된 TIFF 이미지는 모두 IE8 및 Firefox에서 완벽하게 표시됩니다. 또 다른 사용자는 TIFF 이미지가 나타나기도하고 때로는 나타나지 않을 것이라는 테스트 결과가 나왔다고 말했습니다. 이 경우인가요? – w0051977

+0

IE7 이후 브라우저에 TIFF를 표시하려고 시도하지 않았습니다 (예 : 너무 오래 전에 조사 결과를 기억할 수 없음). 웹 협약은 사용자가 다운로드해야하는 데이터의 양을 제한한다고 말합니다. 그것들을 위해 더 싸고 당신을 위해 상당히 싸게. Jpg, Png, Gif 매우 드문 경우에 붙어 있습니다. –