我的应用程序必须处理存储在MemoryStream中的TIFF文件,但是LibTiff.Net总是为字段值返回null。
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库中的一个错误,还是我遗漏了什么?
发布于 2011-01-24 23:58:45
Bit Miracle支持团队为我提供了解决方案:
Tiff.ClientOpen从流的当前位置读取数据。
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);这就解决了这个问题。
https://stackoverflow.com/questions/4781948
复制相似问题