【问题标题】:Get pages from multi tiff从多 tiff 获取页面
【发布时间】:2012-08-22 03:05:43
【问题描述】:

NET 库检索多 tiff 中的页面计数。我使用来自的样本 http://bitmiracle.com/libtiff/help/retrieve-number-of-pages-in-tiff-image.aspx.

    public int GetNumberOfPages(Tiff image)
    {
        int pageCount = 0;
        do
        {
            ++pageCount;
        } while (image.ReadDirectory());

        return pageCount;
    }

    [TestMethod]
    public void GetNumberOfPages()
    {
        using (Tiff tiffFromFile = Tiff.Open(@"test.tif", "r"))
        {
            int numberOfPages = GetNumberOfPages(tiffFromFile);
        }

    }

我遇到异常:无法写入已关闭的 TextWriter。

堆栈跟踪:

at System.IO.__Error.WriterClosed()
   at System.IO.StringWriter.Write(String value)
   at Microsoft.VisualStudio.TestTools.TestTypes.Unit.ThreadSafeStringWriter.Write(String value)
   at System.IO.TextWriter.Write(String format, Object arg0)
   at System.IO.TextWriter.SyncTextWriter.Write(String format, Object arg0)
   at BitMiracle.LibTiff.Classic.TiffErrorHandler.WarningHandler(Tiff tif, String method, String format, Object[] args)
   at BitMiracle.LibTiff.Classic.Tiff.WarningExt(Tiff tif, Object clientData, String method, String format, Object[] args)
   at BitMiracle.LibTiff.Classic.Tiff.ReadDirectory()

代码与示例相同。我找不到这个问题的根源。

【问题讨论】:

    标签: c# tiff libtiff.net


    【解决方案1】:

    我猜这个问题可能与不支持的图像类型或您传递的 tiff 文件中的错误有关。如果您想响应错误,LibTiff 文档会讨论添加自定义处理程序。以前没有使用过那个库,我不能确定发生了什么。我猜可能在 Open 中有一个错误,但是没有处理程序,它吃掉了错误。然后,当您尝试ReadDirectory 时,该文件已关闭。这只是一个猜测。我建议你添加一个错误处理程序,看看发生了什么。

    http://bitmiracle.com/libtiff/help/tiff.seterrorhandler.aspx

    编辑:

    我回头查看了示例页面。他们实际上给出了两种读取页数的方法。您是否尝试过更简单的方法来查看是否以同样的方式失败? To calculate number of pages in a TIFF image the Tiff.NumberOfDirectories() method or a simple loop that traverses directories can be used. This sample shows both methods.

    你应该可以把你的方法变成这样:

    public short GetNumberOfPages(Tiff image)
    {
        return image.NumberOfDirectories()
    }
    

    如果您仍然遇到问题,请尝试使用您知道有效且包含多个页面的其他图片,以便排除图片问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      相关资源
      最近更新 更多