2011-01-24 4 views
1

내 응용 프로그램은 MemoryStream에 저장된 TIFF 파일을 처리해야하지만 LibTiff.Net은 필드 값으로 항상 null을 반환합니다.Tiff에서로드 된 LibTiff.Net을 통해 LibTiff.Net에 필드 값이 없습니다.

 MemoryStream ms = new MemoryStream(); 
     FileStream fs = new FileStream("testfile.tif", FileMode.Open); 
     fs.CopyTo(ms); 

     //It seems (memory) streams have to be opened in write mode, "r" always returns <null> 
     Tiff tiff = Tiff.ClientOpen("someArbitraryName", "w", ms, new TiffStream()); 

     FieldValue[] imageHeight = tif.GetField(TiffTag.IMAGELENGTH); 

Tiff.Open을 사용하여 읽기 위해 파일을 직접 여는 것이 좋습니다.

LibTiff.Net 라이브러리의 버그입니까? 아니면 누락 되었습니까?

Tiff.ClientOpen 스트림의 현재 위치에서 데이터를 읽

답변

3

비트 기적 지원 팀은 솔루션을 나에게 제공했다.

MemoryStream ms = new MemoryStream(); 
    FileStream fs = new FileStream("testfile.tif", FileMode.Open); 
    fs.CopyTo(ms); 

    ms.Position = 0; 

    Tiff tiff = Tiff.ClientOpen("someArbitraryName", "r", ms, new TiffStream()); 

    FieldValue[] imageHeight = tif.GetField(TiffTag.IMAGELENGTH); 

이렇게하면 문제가 해결됩니다.