Tiff: Tagged Image File Format, 是一种标记语言。除图像数据外,还可记录其他图像信息。
后缀:.tif或.tiff。
具体的文件结构:
在了解具体的文件结构时,这里打开具体的文件进行分析。
在画图中写入“我爱数据压缩”,保存为“我爱数据压缩.tif"。
用UltraEdit软件打开。
可见:
Tiff文件包含必要的三个部分:
图像文件头:Image File Header(IFH);
图像文件目录: Image File Directory(IFD);
目录项:Directory Entry(DE);
具体展开:
IFH:
每幅图像以8字节的IFH开始。
0~1字节: 表明字节顺序,其值为4D4D或4949。区分摩托罗拉整数格式和Intel整数格式。即大端小端。 在“我爱数据压缩.tif”中可见,其为49 49 ,为小端格式。
2~3字节:版本号,恒为2A 00,与上图同。
4~7字节:为第一个IFD相对文件开始处的偏移量。上图中为8C CE 05 00,解析为00 05 CE 8C。
找到对应行所在,即为第一个IFD;
IFD:
0~1字节:表示接下来的DE的个数。图中为11 00 ,解析为0011,即表明下面有17个DE。
DE个数*12:即为后续DE所占的字节。这里为204字节。DE的个数不定,每个DE标识了图像的一个属性。这也是为什么TIF被称为“可扩充标记的文件”。
后续4个字节:指出下一个IFD的偏移量。找到对应位置,此处为00 00 00 00,表示为最后一个IFD。在tif文件中,一个IFD对应一幅图像,因此此处偏移量为0。
DE:
0~1字节:对应本属性的标签编号。属性包括图像大小、分辨率、是否压缩、像素的行列数、颜色深度等等。每个属性都有对应的标号,根据网上查阅,罗列一些。
2~3字节:对应本属性值得数据类型,tif规定了相关数据类型,有说5种,有说12种。或为后续扩展。
4~7字节:对应的该种类型数据的个数,而不是某个数据长度。
8~11字节:对应该属性值的存放偏移量。如果该值不多于4个字节,则放在此处。否则则对应其他位置。
对应的第一个DE 为 FE 00 04 00 01 00 00 00 00 00 00。
前两个字节Tag为 00 FE;表示NewSubfileType。因为没有找到相关源文件,并不清楚定义。
数据类型为00 04 长字节。 后续都为0,表示空。
我们查看下一个DE:
前两个字节,为 01 00 ,表示 图像宽,数据类型为00 04 ,长字节。数据个数为0,即存放在后续字节,为00 00 06 B0. 即1547。
......