GIF文件资料格式详解.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案 GIF 文件格式详解 6.2.1 简介 GIF(Graphics Interchange Format) 是 CompuServe公司开发的图像文件存 储格式, 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 Purpose Block)  ,图形描绘块 。 控制块:控制块包含有用来控制数据流 (Data Stream) 或者设置硬件参数的信息,其成员包括: GIF 文件头 (Header) 逻辑屏幕描述块 (Logical Screen Descriptor) 图形控制扩展块 (Graphic Control Extension) 文件结束块 (Trailer) 图形描绘块 :包含有用来描绘在显示设备上显示图形的信息和数据, 其成员包括: 图像描述块 (Image Descriptor) 精彩文档 实用标准文案 无格式文本扩展块 (Plain Text Extension) 全局调色板、局部调色板、图像压缩数据和图像说明扩充块。 特殊用途数据块 ;包含有与图像处理无关的信息,其成员包括:注释扩展块 (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 格式及当前所用的版本号。 GIF 标记域 (Signature) 存放的是 “GIF”,版本号域存放的是 1987 年 5 月发布的“ 87a”或者 1989 年 7 月发布的“ 89a”,或者更加新的版本号。 图 6-02 标记 / 版本数据块的结构 typedef struct gifheader { BYTE bySignature[3]; BYTE byVersion[3]; }GIFHEADER; 逻辑屏幕描述块 逻辑屏幕描述块 (Logical Screen Descriptor) 包含定义图像显示区域的参 数,包括背景颜色信息。 这个数据块中的坐标相对于虚拟屏幕的左上角, 不一定是指显示屏的绝对坐标, 这就意味可以参照窗口软件环境下的窗口坐标或者打印 机坐标来设计图像显示程序。逻辑屏幕描述块的结构如图 6-03 所示: 精彩文档 实用标准文案 图 6-03 屏幕描述块的结构 typedef struct gifscrdesc { WORD wWidth; WORD wDepth; struct globalflag { BYTE PalBits : 3; BYTE SortFlag : 1; BYTE ColorRes : 3; BYTE GlobalPal : 1; } GlobalFlag; BYTE byBackground; BYTE byAspect; }GIFSCRDESC; 逻辑描述块包含 7 个字节。字节 0 和字节 1 用来说明逻辑显示屏的宽度, 字 节 2 和字节 3 用来说明

文档评论(0)

150****5607 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档