TIFF格式是数字印前和数字印刷领域使用的最为普遍的图像格式之一,适用于很多应用软件,例如图像处理软件、图形设计软件、字处理软件和排版软件等。一个独立的TIFF文件有很高的使用价值,它既可以作为页面上的元素,也可以用来直接输出到数字印刷机或激光照排机,例如一个TIFF文件可以直接经RIP解释后输出。TIFF文件在印刷领域有很多优点,如TIFF文件格式适用于广泛的应用程序,它与计算机结构、操作系统无关。它可以在Macintosh和PC这两种主要的硬件平台上使用,而且还可以在UNIX软件平台上使用。TIFF文件格式支持多种图像模式,包括二值图像、灰度图像、RGB图像和Lab图像。最重要的是TIFF格式支持CMYK图像模式,这一点使得TIFF文件格式在数字印刷和数字印前工艺中获得了广泛的应用。TIFF文件格式支持Alpha通道。Alpha通道的价值在于它提供的信息可以被应用,例如视频处理软件利用它来控制画面的局部透明度,图像处理软件利用它来识别当前操作需要的应用的领域。TIFF文件支持多种压缩技术,例如CCITT Group3、LZW和PackBits压缩方法等,6.0版本又增加了JPEG压缩选项。在本文中我们将从标记,头标和目录标记以及压缩标记等方面简单的介绍TIFF文件格式的内部标记方式。
一、标 记
正如我们上面所介绍的,TIFF是一种使用很广泛的图像文件格式,它是弹性的、可扩展的,能支持各种专用特征和应用说明的信息,能用于其它机器环境。在此我们分析一下与众多特点相对应的TIFF文件的结构。TIFF是Tagged Image File Format的缩写,一般译为“带标记的图像文件格式”,已经获得了图像数据的标准方法。TIFF格式由Aldus Developers Desk和Microsoft Windows Marketing Group公司联合开发。使用者可以与Aldus公司协商取得并使用有关图像性质的专门“标记”(Tag),在读取和保存文件时,首先需要处理这个标记。TIFF与其它格式区分的特征就是它的标记Tag,标记域可以说明图像的宽或高,也可以告诉解码器几种TIFF支持的压缩技术中的哪一种已被用于压缩图像,它可以说明图像的全部或一部分信息。在解码TIFF文件时,解码软件的基本任务是浏览每个Tag域,抽取出域中的信息并保留相关的信息,然后创建图像,域的确切特征就会清晰。每个域用整数开始,这些域告诉解码器对域的剩下部分该怎样处理。
使用TIFF文件常常要忽略一些域。许多TIFF文件,比如说从扫描仪驱动器获得的TIFF文件常常与Tag一起装入。许多Tag提供无用的信息。例如,Make标记提醒用户创建TIFF文件的设备生产厂商。不知道这些域的值也可以成功地解码TIFF文件,但是为了提供足够的信息来理解TIFF文件的结构,在TIFF文件中必须包括下列的Tag:NewSubfile Type定义图像的特性;Image Width定义图像的宽:ImageDepth定义图像的深:BitsPerSample定义像素位数;StripOffsets说明图像在文件中的开始位置。
二、头标和目录标记
在TIFF文件中遇到的第一个内容就是它的头标,TIFF的头标结构特别简单,如果用C语言描述则为:
typedef struct{
unsigned int numbertype;
unsigned int vetsion:
unsigned long offset:
}TIFFHEAD:
正如上面所提到的TIFF文件具有跨平台的特点,之所以具有这样的优点是因为设计者允许TIFF文件域中的整数和长整数的结构存入本地机器上用于创建文件的任何格式。有时当TIFF文件从Macintosh传给PC时会引起误解,因此在TIFF文件中的头2个字节的设置必须保存在解码TIFF文件的程序之中,这样,文件其余部分的数据才是可读的。从TIFF文件的头文件开始,将TIFF文件的前8个字节放入这些域中,如果文件使用Intel数据,则tiffhead中的numbertype为4949H,如果使用Motorola数据,numbertype为4D4DH,这里的49H代表ASCII字符I,4DH代表ASCII字符M。这一点正好与我们在使用应用软件,例如Photoshop保存TIFF图像时的对话框所对应,如图1所示。在图1中如果选择IBM PC选项,则TIFF头标文件中的numbertype的值为4949H,如果选择Macintosh选项,则numbertype的值为4D4DH。Version元素总是为42,但是,根据numbertype域的不同,值42也可以以不同的整数类型出现。同样,长整数offset也可以是Intel或Motorola数。因此,将TIFF文件的开始部分作为文件头标比较方便,但是与处理其它文件头标不一样,这里的文件头标通常不读到数据结构中。况且numbertype元素与硬件无关,不管阅读的字节次序如何,这两个字节都是一样的。TIFF文件头标的offset元素表示文件的开始到第一个IFD(Image File Dpcument)的距离。正是由于图像文件目录使得TIFF文件具有上面所提到的弹性和复杂性。每一个目录可以有任何数量的Tag,每一个Tag都说明要打开图像的参数,这些内容都是很重要的。比如说,有一个专用的Tag说明图像的艺术家的名字,有一个Tag说明数字化图像的扫描仪的型号,有两个Tag说明采样光点的大小。IFD提供一系列的指针(索引),这些指针指明相关数据域在文件中的开始位置,并且给出每个域的数据类型和长度。这种方法允许数据域位于文件中的任何位置,长度也可以任意。例如一个指针可以指向768字节的彩色调色板数据域,另一个指针可以指向一个保存扫描仪的灰度校正曲线的64字节长的数据域。
三、压缩标记和TlFF类
压缩标记是TIFF文件格式的任选项之一。理想的TIFF阅读器可以处理任何一种TIFF文件,可以解释所有TIFF压缩类型。例如当Compression标记值为1时表示不压缩;标记值为2时表示采用CCITT组3Huffman编码压缩方法;标记值为3时表示采用CCITT组3 FAX编码压缩方法;标记值为4时表示采用CCITT组4 FAX编码压缩方法:标记值为5时表示采用LZW字串编码压缩方法。随着TIFF版本的提高又增加了一些新的压缩方法,例如在TIFF 6.0版本中提供了JPEG压缩方法。当然每种压缩方法都有其自身的优缺点和使用范围。例如三种CCITT压缩类型需要庞大的makeup代码表,况且不适用于彩色TIFF文件。为了便于开发者开发支持TIFF格式的应用,要确定支持哪些标记,在TIFF 5.0版本中引入了类的概念,共定义了四类:类B(TIFF_Binary)对应于二值单色图像;类G(TIFF_Gray)对应于灰度图:类P(TIFF_Plate)对应于基于调色板的彩色图像;类R(TIFF RGB)对应于RGB彩色图像。每个不同的类对应的标记值都不相同,但是每种TIFF类都提供了在不同硬件平台和应用软件间交换图像数据并能优良图像质量的功能。例如,TIFF格式允许存储原灰度图像的响应曲线,调用灰度图像的软件可以利用这种响应曲线调整图像的输入和输出关系。
四、总 结
在此论文中我们主要介绍了TIFF文件的标记,包括头标和目录标记,以及简单的压缩标记和TIFF类的概念。基于TIFF格式的使用范围广泛,独立于软硬件等一系列优点的同时,由于TIFF的任选项以及多变种方式也会带来解码的困难。例如我们可以使用不同方法压缩TIFF数据,那么要保证解码程序的正确性在程序中必须设计多种解码方法,这无疑增加了开发者的工作量。作为不同应用程序之间的一种数据交换格式,TIFF也有它明显的缺点。因为它允许厂家自己注册定义专用的非公开数据,这使得TIFF文件格式说明变得比较模糊。当然TIFF文件在使用中还有很大的伸缩余地,这些有待于读者去挖掘和利用。
领取专属 10元无门槛券
私享最新 技术干货