我正在尝试使用LibTiff.Net
库并重写合并工具TiffCP
api 以使用内存流。
这个库有一个Tiff
类,通过向这个类传递一个流,它可以将 tiff 图像合并到这个流中。
对于测试,我通过了 aFilestream
并得到了我想要的 - 它合并了,我能够看到多页 tif。
但是当我通过 a 时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();
//..
//..
}
PS:我需要它在内存流中,因为服务器上的某些文件夹权限 + 供应商 API 的原因。