通过libtiff.net从流中加载的tiff没有字段值
-
23-10-2019 - |
题
我的应用程序必须处理存储在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库中的错误还是我错过了什么?
解决方案
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);
这解决了问题。
不隶属于 StackOverflow