Image 我如何知道TIFF图像的格式是否为CCITT T.6(第4组)?

Image 我如何知道TIFF图像的格式是否为CCITT T.6(第4组)?,image,format,tiff,identification,Image,Format,Tiff,Identification,我如何知道TIFF图像的格式是否为CCITT T.6(第4组)?更新: 因此,我从前面提到的链接下载了libtiff库,根据我所看到的,您可以执行以下操作:(未经测试) 上一篇: 有很多关于这种格式的信息,并链接到C语言中的一些代码: 这里有一段摘录: 以下文件涵盖T.4、T.6 和JBIG: “审查电子商务标准 传真系统的图像处理 电子成像杂志,第1卷, 第1号,第5-21页,1992年1月 源代码可以作为 TIFF工具包-TIFF图像 二进制编码的压缩技术 图像包括CCITT T.4和T.6

我如何知道TIFF图像的格式是否为CCITT T.6(第4组)?

更新:

因此,我从前面提到的链接下载了
libtiff
库,根据我所看到的,您可以执行以下操作:(未经测试)

上一篇: 有很多关于这种格式的信息,并链接到C语言中的一些代码:

这里有一段摘录:

以下文件涵盖T.4、T.6 和JBIG:

“审查电子商务标准 传真系统的图像处理 电子成像杂志,第1卷, 第1号,第5-21页,1992年1月

源代码可以作为 TIFF工具包-TIFF图像 二进制编码的压缩技术 图像包括CCITT T.4和T.6:

联系人:sam@engr.sgi.com

阅读更多:


您可以从映像上的套件运行
identifite-verbose
。在输出中查找“Compression:Group4”。

您可以查看这些链接

标记259(十六进制0x0103)存储有关压缩方法的信息

---压缩 标签=259(103) 类型=字 N=1 默认值=1

1=无压缩,但尽可能紧密地将数据打包到字节中,无需 未使用的位,行尾除外。字节存储为数组 字节数,用于位示例8、16和8位 必须与TIFF文件头中指定的一致(字节0 (一)。行必须从字节边界开始

2=CCITT组3一维修改的哈夫曼游程编码。 请参阅ALGRTHMS.txt BitsPerSample必须为1,因为这种类型的压缩 仅为双层图像(如传真图像…)定义

3=传真兼容CCITT第3组,完全符合 “第3组文件传真机的标准化 传输,“建议T.4,第VII卷,第VII.3分册, 远程信息处理服务的终端设备和协议 国际电报电话咨询委员会 (CCITT),日内瓦,1985年,第16至31页。每一条都必须 从字节边界开始。(但请记住,图像可以是 单个条带。)不是条带第一行的行是 不需要从字节边界开始。数据存储为 字节,而不是字-不允许字节反转。见 组3选项字段,用于组3选项,例如1D与2D编码

4=传真兼容CCITT第4组,完全符合 “集团的传真编码方案和编码控制功能 4传真机,“建议T.6,第七卷,分册 七、 远程信息处理服务的终端设备和协议, 国际电报电话咨询委员会 (CCITT),日内瓦,1985年,第40至48页。每一条都必须 从字节边界开始。不是列表第一行的行 条带不需要从字节边界开始。数据是 存储为字节,而不是字。有关详细信息,请参见Group4Options字段 第4组选项

5=LZW压缩,用于灰度、贴图颜色和全彩图像。

您可以使用此(C#)代码示例。 它返回一个值,指示压缩类型:

1:无压缩
2:CCITT第3组
3:传真兼容CCITT第3组
4:CCITT第4组(T.6)
5:LZW

int isTIFF_T6(const char* filename)
{
TIFF* tif= TIFFOpen(filename,"r");
TIFFDirectory *td = &tif->tif_dir;
if(td->td_compression == COMPRESSION_CCITTFAX4) return 1;
return 0;
}
public static int GetCompressionType(Image image)
{
    int compressionTagIndex = Array.IndexOf(image.PropertyIdList, 0x103);
    PropertyItem compressionTag = image.PropertyItems[compressionTagIndex];
    return BitConverter.ToInt16(compressionTag.Value, 0);
}