代码之家  ›  专栏  ›  技术社区  ›  Adrian

如何指定特定的组3 tiff压缩?

  •  6
  • Adrian  · 技术社区  · 16 年前

    第3组压缩有2种变体(第3组1D和第3组2D)。以Tiff格式保存图像时,EncoderValue枚举中组3只有一个选项。是否有单独的参数来控制这一点?

    1 回复  |  直到 16 年前
        1
  •  2
  •   TMarshall    15 年前

    对。第3组压缩(更准确地说是CCITT T.4)最常用的是传真图像。在这种情况下,根据定义,图像是两级(1位)图像,并且期望1D压缩。因此,如果您除了将压缩值(标记259)设置为“2”(对于双层图像)之外不做任何事情,那么它被理解为G3一维(修改的哈夫曼)编码。唯一的其他选项是无压缩(1)和压缩位(32773)。所有三种编码类型 应该 但是我的经验是,许多读者不支持groupiii压缩,尤其是G32D。

    如果你想使用G3二维编码,你必须在标签更具体。您必须使用CCITT编码来指示T4压缩编码(CCITT.4是“组3”编码标准的“真实”名称)。为此,设置tag 259==3。然后设置T4选项以指定二维编码。与标准压缩(259)标签等简单标签相比,t4options标签(标签292)有点棘手。它是一个长类型,用作一组32位标志。如果将所有位都设置为零,则默认情况下可以理解一维编码(与不包括此标记没有区别)。

    对于二维编码,必须将位0(低位)设置为1。(如果使用多个条带,每个条带显然必须以一维扫描线开始。)只有在使用未压缩模式时,位1才设置为1。位2用于指示是否已使用填充位将EOL保持在字节边界上(如果为真,则设置为1)。所有其他位默认为零。

    请记住,大多数读者无法理解TIFF中的所有可用选项。它是一种非常强大的格式,但这使得它很难在基线TIFF之外实现(它可能处理90%以上的TIFF图像)。如果您使用的是组3二维编码,那么您可以预期大多数专门支持传真图像和医学图像*的读取器将正确解码图像。我不希望有更多。

    ( )

    这个答案比我想的要长。如果我仍然没有回答你的问题,请在你原来的职位澄清,我会编辑我的答案。

    编辑:您可以在Adobe开发者网站上找到TIFF标准和其他支持文档。 http://partners.adobe.com/public/developer/tiff/index.html