libtiff.netを介してストリームからロードされたtiffにフィールド値はありません
-
23-10-2019 - |
質問
私のアプリケーションは、メモリストリームに保存されている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ライブラリのバグですか、それとも何かが足りませんか?
解決
ビットミラクルサポートチームは私にソリューションを提供してくれました:
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