GIF 图形文件格式文档
1.概述
GIF(Graphics Interchange Format,图形交换格式)文件是由 CompuServe 公司开
发的图形文件格式,版权所有,任何商业目的使用均须 CompuServe 公司授权。
GIF 图象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只
支持 8 位(256 色)。GIF 文件内部分成许多存储块,用来存储多幅图象或者是决定图象表现
行为的控制块,用以实现动画和交互式应用。GIF 文件还通过 LZW 压缩算法压缩图象数据来减
少图象尺寸。
2.GIF 文件存储结构
GIF 文件内部是按块划分的,包括控制块( Control Block )和数据块(Data Sub-block
s)两种。控制块是控制数据块行为的,根据不同的控制块包含一些不同的控制参数;数据块只
包含一些 8-bit 的字符流,由它前面的控制块来决定它的功能,每个数据块 0 到 255 个字节,
数据块的第一个字节指出这个数据块大小(字节数),计算数据块的大小时不包括这个字节,所
以一个空的数据块有一个字节,那就是数据块的大小 0x00。下表是一个数据块的结构:
BYTE
7
6
5
4
3
2
1
0
BIT
0
块大小
Block Size - 块大小,不包括这个这个字节(不计算块
大小自身)
1
2
...
254
255
Data Values - 块数据,8-bit 的字符串
一个 GIF 文件的结构可分为文件头(File Header)、GIF 数据流(GIF Data
Stream)和文件终结器(Trailer)三个部分。文件头包含 GIF 文件署名(Signatu
re)和版本号(Version);GIF 数据流由控制标识符、图象块(Image Block)和
其他的一些扩展块组成;文件终结器只有一个值为 0x3B 的字符(';')表示文件
结束。下表显示了一个 GIF 文件的组成结构:
GIF 署名
版本号
文件头
逻辑屏幕标识符
全局颜色列表
...
图象标识符
图象局部颜色列表图
基于颜色列表的图象
数据
图象
块
...
GIF 数据
流
GIF 结尾
文件结尾