GIF 文件格式详解 6 .2 .1 简介 GIF(Graphics Interchange Format)是Compu Serv e 公司开发的图像文件存储格式,1987 年开发的GIF 文件格式版本号是GIF87a,1989 年进行了扩充,扩充后的版本号定义为GIF89a。 GIF 图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF 文件由表示图形/图像的数据块、数据子块以及显示图形/图像的控制信息块组成,称为GIF 数据流(Data Stream)。数据流中的所有控制信息块和数据块都必须在文件头(Header)和文件结束块(Trailer)之间。 GIF 文件格式采用了LZW(Lempel-Ziv Walch)压缩算法来存储图像数据,定义了允许用户为图像设置背景的透明(transparency )属性。此外,GIF 文件格式可在一个文件中存放多幅彩色图形/图像。如果在 GIF 文件中存放有多幅图,它们可以像演幻灯片那样显示或者像动画那样演示。 6 .2 .2 . 文件结构 GIF 文件结构的典型结构如图6-01 所示。为下文说明方便,在构件左边加了编号。 图 6-01 GIF 文件结构 数据块可分成 3 类:控制块(Control Block),图形描绘块(Graphic-Rendering Block)和专用块(Special Pu rpose Block)。 (1 ) 控制块:控制块包含有用来控制数据流(Data Stream)或者设置硬件参数的信息,其成员包括: GIF 文件头(Header) 逻辑屏幕描述块(Logical Screen Descriptor) 图形控制扩展块(Graphic Control Ex tension) 文件结束块(Trailer) (2 ) 图形描绘块:包含有用来描绘在显示设备上显示图形的信息和数据,其成员包括: 图像描述块(Image Descriptor) 无格式文本扩展块(Plain Text Extension) 全局调色板、局部调色板、图像压缩数据和图像说明扩充块。 (3) 特殊用途数据块;包含有与图像处理无关的信息,其成员包括: 注释扩展块(Comment Extension) 应用扩展块(Application Extension) 除了在控制块中的逻辑屏幕描述块(Logical Screen Descriptor)和全局彩色表(Global Color Table)的作用范围是整个数据流(Data Stream)之外, 所有其他控制块仅跟在它们后面的图形描绘块。 6 .2 .3 构件详解 1. GIF 文件头 文件头描述块(Header)定义 GIF 数据流(GIF Data Stream),它的结构如图 6-02所示。文件头描述块(Header)由 GIF 标记域(Signature)和版本号(Version)域组成,是一个由 6 个固定字节组成的数据块,它们用来说明使用的文件格式是 GIF 格式及当前所用的版本号...