我怎么能知道,如果一个TIFF像是在格式CCITT T.6(4组)?
-
20-09-2019 - |
题
我怎么能知道,如果一个TIFF像是在格式CCITT T.6(4组)?
解决方案
可以使用该(C#)的代码示例。 它返回指示所述压缩类型的值:
1:不压缩结果 2:CCITT第3组结果 3:传真兼容CCITT组3点击 4:CCITT组4(T.6),点击 5:LZW
public static int GetCompressionType(Image image)
{
int compressionTagIndex = Array.IndexOf(image.PropertyIdList, 0x103);
PropertyItem compressionTag = image.PropertyItems[compressionTagIndex];
return BitConverter.ToInt16(compressionTag.Value, 0);
}
其他提示
你可以检查这些链接
标签259(hex0x0103)储存信息压缩的方法。
---压缩 标记=259(103) Type=字 N=1 Default=1个。
1=没有压缩,但包字节的数据进入尽可能紧密的,没有 未使用的位除了最后一行中。字节被储存作为一个阵列 字节,对于BitsPerSample <=8时,一句话,如果BitsPerSample>8和 <=16, 如果双BitsPerSample>16和 <=32.字节订购的数据>8比特 必须符合指定的TIFF文件的标题(0字节 和1).行需要开始上的字节的边界。
2=CCITT组3 1个维修霍夫曼运行长编码。看看ALGRTHMS.txt BitsPerSample必须是1,因为这种类型的压缩 仅被定义为双层的图像(如传真图像...)
3=传真兼容CCITT组3,正是因为指定 "标准化组3的传真设备的文件 传输"的建议T.4,Volume七分册的七。3, 终端设备和协议的用于远程信息处理服务, 国际电报和电话协商委员会 (CCITT),日内瓦,1985年,16页,通过31个。每个地带必须 开始上一个字节的边界。(但是记得的图像,可以一个 单一条。) 行不是第一个排的一个条 不需要开始一个字节的边界。数据存储为 字节,不是的话-byte-逆转是不允许的。看看 Group3Options场为基3个选项,如1D vs2D编码。
4=传真兼容CCITT组4, 正如在指定 "传真的编码方案和编码控制的功能为基 4传真设备"建议T.6,Volume七、专册 VII.3、终端设备和协议的用于远程信息处理服务, 国际电报和电话协商委员会 (CCITT),日内瓦,1985年,40页,通过48.每个地带必须 开始上一个字节的边界。行,不是第一排的 条不需要开始一个字节的边界。该数据 存储为字节,不词。看到Group4Options场 小组4个选项。
5=块压缩,用灰度,映射的色彩,并全色图像。
可以运行从 ImageMagick的套件在图像上identify -verbose
。查找“压缩:组4”。在输出
<强>更新强>
所以,我下载了我之前提到的链接libtiff
库,并从我所看到的,你可以做到以下几点:(未经测试)
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;
}
<强> PREVIOUS:强> 此页面有一个关于这个格式很多信息和链接到一些代码在C:
下面是一个摘录:
下面的纸覆盖T.4,T.6 和JBIG:
“用于电子标准评分 用于传真系统”成像 杂志电子成像,卷。 1, 1期,第5-21,1992年1月
源代码可以作为其一部分来获得 一个TIFF工具包 - TIFF图像 压缩技术为二进制 图像包括CCITT T.4和T.6:
ftp://ftp.sgi.com/graphics /tiff/tiff-v3.4beta035-tar.gz 接触:sam@engr.sgi.com
了解更多:的http:// WWW。 faqs.org/faqs/compression-faq/part1/section-16.html#ixzz0TYLGKnHI