通过LibTiff.Net从流中加载的Tiff没有字段值

3

我的应用程序必须处理存储在MemoryStream中的TIFF文件,但LibTiff.Net总是返回字段值为null

(我的应用程序需要处理存储在MemoryStream中的TIFF文件,但LibTiff.Net总是返回空值。)

        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库中的一个错误还是我漏掉了什么?

1个回答

7

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);

这解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接