2014-06-15 4 views
1

새로운 표현 질문 : 나는이 .tif 파일의 수가 많은바이트 배열

대부분의 (전부는 아니지만) 다음과 같은 정의가 :

  • 비트 깊이 : 1
  • 압축 : CCITT의 T.6 (그룹 4)

일부는 다중 있으며, 일부는 없습니다. 나는 다음 SQL 서버 (12) DB, VARBINARY 컬럼이 바이트 배열을 저장

private byte[] LoadArchivedFile() 
{ 
    FileStream file = File.Open(fileAddress, FileMode.Open, FileAccess.Read, FileShare.Read); 
    byte[] fileByteArray = ReadFully(file, 0); 
    return fileByteArray; 
} 

:

나는 다음과 같은 사용하여로드.

이제이 .tif 파일을 볼 수있는 MVC2 웹 페이지를 만들고 있습니다. 이 과정은 다음 있어야하는데 다음이 .tif

  • 에서 페이지를 선택

    • 부하 바이트 배열
    • Image
    • 로 변환이
    • 보내 JPEG로 해당 페이지를 변환하려면 페이지를 브라우저에 연결

    개발 환경에서 모든 것이 완벽하게 작동합니다. 내가 목표 IIS (현재 6, 나는 7.5에 대한 요청을 연)에 프로젝트를 설치하면, 프로세스가 다음 줄에 실패

    [... load byte array from DB] 
    byte[] imageBinary = (byte[])results.fileBinary; 
    
    using(MemoryStream ms = new MemoryStream(imageBinary)) 
    { 
        Image image = Image.FromStream(ms); <---- FAILS HERE 
        [...] 
    } 
    

    스택 트레이스 :

    이제
    System.ArgumentException: Parameter is not valid. 
    at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData) 
    at System.Drawing.Image.FromStream(Stream stream) 
    at [MyCode] 
    

    , 내가받은 바이트 배열은 결함이 아닙니다. 즉, 입니다. 말하자면 DB의 동일한 데이터입니다. 심지어 몇 바이트, 전체 길이를 비교해도 ... 어쨌든, 그것은 같은 소스입니다. 이것은 잘못이있는 곳이 아닙니다.

    I found another question (비슷한 것은 아니지만) 문제가 있습니다. 비트 깊이, 픽셀 형식, 압축 및 코덱의 문제가 있습니다. 바이트 배열에서 Image로 다시 변환 한 후에 Format1bppIndexed가되었지만 원본 이미지의 픽셀 형식이 무엇인지 모릅니다.

    나는 많은 상실감이있다. 대상 컴퓨터에 코덱이없는 문제가 있습니까? 이미지 바이너리를 DB에 업로드하기 전에해야 할 일이 있습니까?

  • 답변

    0

    참고 - 가능한 경우 IIS7로 전환하면 문제가 완전히 해결됩니다.

    나는 아직도 IIS6에서 이것을 알아 내지 못했으며 ... 또 다른 완전한 근무일을 보냈다 ... 아무 소용이 없다. MIME 타입 핸들링, IIS7의 DLL에 추가, 어쩌면 GDI +와 같은 것으로 믿습니다 ... 정말 모르겠습니다. 그러나 다른 사람이이 문제를 겪는다면 은 IIS7으로 업그레이드하고 번거롭지 않습니다.