gpt4 book ai didi

c# - 您如何指定特定的第 3 组 tiff 压缩?

转载 作者:太空狗 更新时间:2023-10-29 21:56:07 25 4
gpt4 key购买 nike

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

最佳答案

是的。 Group 3 压缩(更准确地说是 CCITT T.4)最常用于传真图像。在这种情况下,图像根据定义是双层(1 位)图像,并且需要进行一维压缩。因此,如果您除了将压缩值(标签 259)设置为“2”(对于双层图像)之外什么都不做,那么它就会被理解为 G3 1 维(修改后的霍夫曼)编码。唯一的其他选项是无压缩 (1) 和打包位 (32773)。基线读者应该支持所有三种编码类型,但根据我的经验,许多读者并不正确支持 Group III 压缩,尤其是 G32D。

G31D 比 G32D 更容易实现,但效率不高。 G31D 单独存储每条扫描线,而 G32D 存储扫描线之间的差异。这会对定义图像所需的数据量产生巨大影响,例如典型的传真图像,其中大部分图像是空白白纸。

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

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

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

(TIFF 不是标准的医学图像格式,但根据我的经验,同时支持 DICOM 图像和 TIFF 图像的读者通常支持完整的 TIFF 标准)

这个答案比我预期的要长。如果我仍然没有回答你的问题,请在你原来的帖子中澄清,我会编辑我的答案。

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

关于c# - 您如何指定特定的第 3 组 tiff 压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com