LibTiff.Net
라이브러리를 사용하고 병합 도구 TiffCP
api를 다시 작성하여 메모리 스트림을 사용하려고합니다.memorystream 대 filestream에서 다중 TIF 파일 작성 중?
이 라이브러리는 Tiff
클래스이며이 클래스에 스트림을 전달하여 tiff 이미지를이 스트림으로 병합 할 수 있습니다.
테스트를 위해 나는 Filestream
을 전달했으며 원하는 부분을 얻었습니다. 병합되어 다중 페이지 티프를 볼 수있었습니다.
그러나 MemoryStream
을 전달하면 페이지 데이터가 스트림에 추가되는 것을 확인할 수 있지만 마지막에 파일에 쓸 때 첫 번째 페이지 만 볼 수 있습니다.
var mso = new MemoryStream();
var fso = new FileStream(@"C:\test\ttest.tif",FileMode.OpenOrCreate); //This works
using (Tiff outImage = Tiff.ClientOpen("custom", "w", mso, tso))
{
//...
//..
System.Drawing.Image tiffImg = System.Drawing.Image.FromStream(mso, true);
tiffImg.Save(@"C:\test\test2.tiff", System.Drawing.Imaging.ImageFormat.Tiff);
tiffImg.Dispose();
//..
//..
}
피씨 : 서버의 일부 폴더 권한 + 공급 업체 API 때문에 memorystream에 필요합니다.
두 함수를 모두 사용하고 있는데이 fso.Write (mso.GetBuffer(), 0, mso.GetBuffer(). Length); 파일 스트림을 사용할 때 두 페이지를 볼 수 있습니다. 보시다시피 저는 메모리 스트림에서 읽는 중입니다. 그러나 내가 System.Drawing.Image.FromStream (mso, true)와 같이 쓸 때; 첫 페이지 만 씁니다. – Dexters
@Dexters 내 업데이트 된 답변을 참조하십시오. – Bobrovsky