6、 tiff 文件的基本格式
TIFF(Tag Image File Format) 图像文件说明:
TIFF 文件是由许多的标签 (tag) 组成 , 在 Adobe 的有关 tiff6.0 的说明中,将 (tag) 的解释称各种标签所对应的数值,而在文件中各个标签的实际入口称为 (field) ,暂且称为域。 tiff 支持黑白、灰度、彩色的图像格式,同时还可以接受 RGB CMYK 等色彩系统,同时支持图像数据的 LZW, 哈夫曼等压缩算法或者不压缩。
TIFF 文件分为文件头和 IFD 两部分,一个 IFD 中存储了一幅图像的信息, IFD 可以由许多标签组成。在 TIFF6.0 文件中,规定所有的标签必须以升序排列,通过这些标签信息,来处理文件中的图像数据。
TIFF 文件头说明:
TIFF 的文件头有 8 字节
0-1 规定为 "II" 或者 "MM" Intel /Mortorola 类型的字节顺序
2-3 TIFF 文件的版本,为与以前的兼容,为 42
4-7 TIFF 文件的第一个 IFD 在文件中的偏移量,肯定大于 8
IFD 说明: IFD 是由连续的标签组成
OFFSET:0-1 IFD 中的标签数目
OFFSET:2-13 IFD 中的第一个标签
OFFSET:14-25 IFD 中的第二个标签
.....
OFFSET:2+12* 标签数 下一个 IFD 的 ( 相对于文将 ) 偏移量,在一个 TIFF 文件中可以由多个 IFD 用于存放多个图像,如果如果该数字为 0 ,表示已经处理完所有的 IFD 。
标签说明:一个标签由连续的 12 字节组成
OFFSET:0-1 TAG ID 标签所对应的数字编号 (tag) ,用于定义该标签所存放的 " 信息 "
OFFSET:2-3 TAG INFO DATA TYPE 标签中数据的数据类型
OFFSET:4-7 VALUE COUNT 2-3 中说明的数据类型的数目
OFFSET:8-11 VALUE OFFSET 相对于文件的该标签值的偏移量 , 必须开始于 " 字 " 边界 , 为了节省空间,如果该标签的数据的长度小于等于四个字节,在 VALUE OFFSET 中直接存储 ( 小于四字节数据左对齐 ) 该标签的值而不是在文件中的偏移量。
以下列出了标签中的数据的可能的数据类型
1 = BYTE
2 = ASCII
3 = SHORT
4 = LONG
5 = RATIONAL
6 = SBYTE
7 = UNDEFINED
8 = SSHORT
9 = SLONG
10= SRATIONAL
11= FLOAT
12= DOUBLE
TIFF 中的标签种类有很多,按大类可以 BASELINE TIFF 标签 和 TIFF EXTENSIONS 标签
在以前版本的 TIFF 文当中将 TIFF 文件分为
BASELINE TIFF:
在以前版本中, BASELINE TIFF 分为三种格式:
(BiLevel Images)tiff class b image , (GrayScale Images)tiff class G image,(Palette-Color Images)class P image,(rgb image)tiff class r images
1.BiLevel Images 所用到的标签
标签名 标签的 ID 号 ( 十进制 ) 标签数据类型 标签可能的数值
ImageWidth 256 SHORT/LONG
ImageLength 257 SHORT/LONG
Compression 259 SHORT 1(no Compression),2(HuffmanCompression),32773(PackBits Compression)
PhotometricInterpretation 262 SHORT 当 Compression=2 0,1(0: 在 BiLevel/GrayScale 图形中 0 表示全白 1: 在 BiLevel/GrayScale 图形中 0 表示全黑 , 即图形采用反色显示 )
StripOffsets 273 SHORT/LONG 每个 Strip 的文件偏移量
RowsPerStrip 278 SHORT/LONG 每个 Strip 中的行数
StripByteCounts 279 SHORT/LONG 当采用某种压缩方式后每个 Strip 的字节数
XResolution 282 RATIONAL ImageWidth 中每 ResolutionUnit 中的像素数目
YResolution 283 RATIONAL ImageLength 中每 ResolutionUnit 中的像素数目
ResolutionUnit 296 SHORT 1( 用于非四边形显示的图像 ),2( 英寸 ),3( 厘米 ) 根据 ImageWidth 及 ImageLength 用于计算图像在显示时的尺寸
以下是一个 BiLevel Tiff 文件的例子
偏移量 说明 数值 (HEX)
0000 byteorder 4d4d
0002 42 0042
0004 1st IFD offset 00000014
IFD:
偏移量 说明 值 (HEX)
0014 number of directory entries 000c(IFD 中的标签数目 12 个 )
偏移量 标签说明 TagID(HEX) 数据类型 (HEX) Count(HEX) 值偏移量 (HEX) 说明
0016 newsubfile type 00fe 0004 00000001