【问题标题】:WPF: TIFF images with JPEG compression?WPF:使用 JPEG 压缩的 TIFF 图像?
【发布时间】:2010-09-22 19:32:28
【问题描述】:

我有大量 TIFF 图像需要在 WPF 程序中使用(特别是 .NET 3.5 SP1 并使用 C#)。一半的 TIFF 文件包含使用 JPEG 压缩编码的彩色图像,它们不适用于 WPF。 “Microsoft Office Document Imaging”应用程序可以很好地处理这些文件。由于 Windows 本身也不喜欢它们(例如不能生成缩略图),我假设这是标准 Windows 映像组件 (WIC) 库中的限制。

有没有人知道如何正确读取使用标准 .NET/WPF 库进行 JPEG 压缩的 TIFF 图像?

或者是否有人知道我可以用来解决此问题的任何替代的第三方 WIC TIFF 编解码器?

或者最后是否有任何用于 TIFF 文件的替代 .NET 库仍然可以轻松地与 WPF 一起使用?

谢谢!

【问题讨论】:

    标签: .net wpf encoding jpeg tiff


    【解决方案1】:

    TIFF 包装的 JPEG 有两种类型 - 类型 6 和类型 7。您所描述的是类型 6 TIFF。尽管 Adob​​e 多年来一直建议不要使用这种类型(有关详细信息,请参阅 Tech Note 2),但仍有几个图形包使用它。

    我知道一些用于 .NET 的商业图形包可以读取它们,例如 Captiva ISIS PixTools(以前的 Pixtran)库,但不知道任何开源或其他免费的东西。

    【讨论】:

    • 实际上它们是 7 类文件(它们是由我们编写的 Win32 应用程序创建的,我检查了源代码)。 Microsoft Office Document Imaging 可以正常打开它们,但其他 Microsoft 工具无法处理它们(例如画图或 Windows 图片和传真查看器。
    【解决方案2】:

    您使用什么 WPF API 来处理它们?

    您是否尝试过使用 System.Windows.Media.Imaging 命名空间中的TiffBitmapDecoder

    【讨论】:

    • 我只是尝试使用 Image 组件。我尝试了您建议的 MSDN 文章中的示例代码,虽然它适用于其他文件,但 JPEG 压缩图像在尝试解码文件时都会生成 0x88982F40 异常。
    【解决方案3】:

    您需要升级到 Windows 7、Windows Server 2008(或更高版本)才能以本机方式打开这些文件。

    Libtiff (C++) 和 LibTIFF.NET (.Net) 应该能够打开这些文件。请确保在构建这些库之一时,在构建中启用了 TIFF_JPEG(6 和 7)。这些格式在默认构建设置中被禁用。

    【讨论】:

    • 有趣!感谢您对这个非常古老的线程发表评论。我有几个问题要问你。 1) 为什么默认版本中没有启用 TIFF_JPEG? 2) 与内置的 WPF 或 WIC 是否兼容?
    • @Scott Bussinger:(1) 它需要兼容版本的 libjpeg 才能构建。此外,由于非标准化的供应商实施,它不能保证正确打开所有供应商的 tiff-jpeg。这将需要维护工程师在发现代码问题时对其进行监视和修复。 (如果您确实修复了一些错误,libtiff 欢迎您提交补丁。) (2) WIC 依赖于 Windows 操作系统版本。 Windows 7 及更高版本提供对 TIFF_JPEG 的本机支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2014-04-15
    相关资源
    最近更新 更多