图形交换格式(sm)89a版(c) 1987198819891990年版权CompuServe公司俄亥俄州哥伦布GIF89a规范封面LZW压缩中的延迟清除码关于在数据流。正如规范所说,它们可能随时出现。那里不要求在字符串表已满时发送清晰的代码。编码器决定何时清除表格。什么时候?表格已满,编码器可以选择按原样使用表格,使否直到编码器选择清除它这一次发送的代码大小最大。从上面我们可以看到,当解码器的表已满时,它必须在收到清除代码之前,不要更改表格。代码大小是最大代码大小的。除此之外的处理正常完成。因为有大量解码器不处理解压缩这样,我们要求GIF编码软件的开发人员不要实现这项功能至少要到1991年1月,如果他们看到特定的市场还没有准备好。这将给GIF的开发者解码软件时间以实现此功能并将其放入在解码器开始“破坏”新的GIF。编码器无需更改其软件延迟清除代码的优点,但它是用于解码器的。应用程序扩展块-应用程序标识符PICS中CompuServe上有一个Courtesy Directory文件论坛。此目录将包含应用程序的应用程序标识符GIF应用程序开发人员使用的扩展块。此文件旨在帮助希望创建使用相同应用程序标识符的应用程序扩展块。这不是官方目录;仅限自愿参加并且不保证有人不会使用相同的标识符。可以向Larry Wood(PICS论坛经理)发送电子邮件,说明请求在此文件中包含标识符。CompuServe合并的图形交换格式文件日期:1990年7月31日编程参考目录免责声明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1前言。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1许可。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1关于文件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2版本号。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2编码器。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。解码器。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。顺从。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。关于建议。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4关于颜色表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4模块、扩展和范围。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4砌块尺寸。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5将GIF用作嵌入式协议。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5数据子块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5块终止器。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6标题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7逻辑屏幕描述符。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8全局颜色表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10图像描述符。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11局部颜色表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。13基于表格的图像数据。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14图形控制扩展。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15评论扩展。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17纯文本扩展。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。18应用程序扩展。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。21拖车。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。23快速参考表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。24GIF语法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。25词汇表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。27习俗。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28交错图像。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29可变长度代码LZW压缩。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。30在线能力对话。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3311.免责声明。此处提供的信息如有更改,恕不另行通知。没有事件发生后,CompuServe Incorporated将承担损害赔偿责任,包括收入、利润损失或其他附带或间接损失不使用或无法使用信息;CompuServe公司对信息的适用性不作任何声明。2.前言。本文件定义了图形交换格式(sm)。规范这里给出的定义是版本89a,它是版本87a的扩展。应考虑此处规定的图形交换格式(sm)完整;任何偏离都应视为无效,包括但不包括仅限于在控件或数据中使用保留或未定义的字段块,块内或块间包含无关数据格式等中未明确列出的方法或算法总则中未规定的任何和所有偏差、扩展或修改此文件应被视为违反格式,并且应避免。3.许可。图形交换格式(c)是CompuServe的版权所有合并。只有CompuServe Incorporated有权定义、重新定义,以任何方式增强、更改、修改或更改格式的定义。CompuServe Incorporated特此授予有限、非决定性、免版税在计算机中使用图形交换格式(sm)的许可证软件;使用GIF(sm)的计算机软件必须承认CompuServe Incorporated的图形交换格式及其服务标志用户和技术文档。利用GIF的计算机软件,即分发或可能在没有用户或技术文档的情况下分发必须向屏幕或打印机显示一条消息,确认CompuServe Incorporated的图形交换格式和服务标记;在里面在这种情况下,确认可以显示在打开的屏幕或前导屏幕中横幅,或关闭屏幕或拖尾横幅。以下消息可用于:“图形交换格式(c)是CompuServe公司。GIF(sm)是的服务标记属性CompuServe公司。"有关更多信息,请联系:CompuServe公司图形技术部阿灵顿中心大道5000号俄亥俄州哥伦布43220美国。CompuServe Incorporated与所有这些个人和希望在更正后收到此文档副本的组织2或修订。此服务是免费提供的;请向我们提供您的邮寄地址。4.关于文件。本文件详细描述了图形交换的定义格式。本文件旨在作为编程参考;它是建议在编程之前仔细阅读整个文档,因为各个部分之间的相互依赖。有一个人每个格式块的部分。在每个小节中标记为Required Version的版本是指编码器将具有的版本号如果数据流中使用了相应的块,则使用。在每个第节,图描述了块中的各个字段;图表垂直绘制;图中顶部的字节首先出现在数据流中。字节中的位在左端绘制为最重要的。多字节数字字段首先按最低有效字节排序。数字常量为表示为十六进制数字,前面加“0x”。字节内的位字段按照从最高有效位到最低有效位的顺序进行描述。5.一般说明。图形交换格式(sm)定义了用于在线光栅图形数据的传输和交换独立于创建或显示时使用的硬件。图形交换格式由块和子块定义包含复制图解的。GIF数据流是协议块和子块的序列表示图形的集合。通常,数据中的图形假设流在某种程度上相关,并共享一些控制信息;建议编码器尝试将相关的图形以最小化处理过程中的硬件更改,并最小化控制信息开销。出于同样的原因,不相关的图形或需要重置硬件参数的图形应进行编码尽可能分开。当从文件中读取数据流时,数据流可能起源于本地,也可能远程发起,如通过数据通信线传输。这个格式的定义假设无错误传输级别协议用于通信;该格式没有规定错误检测和错误纠正。GIF数据流必须在上下文中解释,即应用程序程序必须依赖数据流外部的信息来调用解码器进程。6.版本号。数据流标题中的版本号用于标识为了完全处理数据流。编码器应使用最早的版本号包括数据流中使用的所有块。在每个块段内在本文档中,有一个标记为Required Version的条目,它指定了包含相应块的最早版本号。编码器应尽一切努力使用最早的版本号,涵盖所有数据流中的块;不必要地使用较新版本号将阻碍一些解码器的处理。7.编码器。编码器是用于创建GIF数据流的程序。从光栅数据以及其他信息,编码器产生必要的控制和数据复制原始图形所需的块。编码器具有以下主要职责。-在数据流中包含所有必要的信息再现图形。-确保数据流标记为尽可能早的包含中所有块定义的版本号它;这是为了确保最大数量的解码器可以处理数据流。-确保对图形进行编码,以便解码优化了工艺。尽量避免冗余信息可能。-尽可能避免将可能需要在解码过程中重置硬件参数。-设置为零(关闭)每个字段的每个位指定为保留。注意逻辑屏幕中的一些字段描述符和图像描述符在版本下保留87a,但在版本89a下使用。8.解码器。解码器是用于处理GIF数据流的程序。它处理数据流顺序,使用控制信息以设置硬件和过程参数并解释用于渲染图形的数据。解码器具有以下主要职责。-按顺序处理数据流中的每个图形,无需控制信息中规定以外的延迟。-将其硬件参数设置为尽可能适合数据流中包含的控制信息。9.合规性。编码器或解码器被认为符合图形的给定版本交换格式当且仅当其完全符合并正确实现与该版本关联的标准的定义。4编码器或解码器可能符合给定的版本号,而不是与某些后续版本兼容。10.关于建议。本文件中的每个区块部分都包含一个标记为“建议”的条目;本节列出了一组建议,旨在指导和组织使用特定块。这些建议旨在编码器和解码器的功能更加高效通信带宽的最佳利用。建议这些遵循建议。11.关于颜色表。GIF格式使用颜色表渲染基于光栅的图形。A颜色表可以有两个不同的作用域之一:全局作用域或局部作用域。全球颜色表被数据流中所有没有与它们关联的本地颜色表。全局颜色表的范围是整个数据流。本地颜色表始终与紧跟其后的图形;本地颜色表的范围是仅限于单个图形。局部颜色表取代全局颜色表,也就是说,如果数据流包含全局颜色表和图像具有关联的本地颜色表,解码器必须保存全局颜色表,使用本地颜色表渲染图像,然后恢复全局颜色表。这两种颜色表都是可选的数据流可能包含许多没有颜色表的图形完全。因此,建议解码器保存最后一个在遇到另一个全局颜色表之前使用全局颜色表。这样,数据流不包含全局颜色表或可以使用上次保存的全局颜色表处理局部颜色表。如果使用上一个流中的全局颜色表,则该表将成为当前流的全局颜色表。这是为了减少颜色表产生的开销。特别是,建议如果相关数据中的所有图像,编码器仅使用一个全局颜色表流可以使用相同的表进行渲染。如果没有颜色表,请访问总之,解码器可以自由使用系统颜色表或自己的表。在这种情况下,解码器可以使用与其颜色相同的颜色表硬件能够支持;建议这样的桌子有黑色和白色作为其前两个条目,因此可以渲染单色图像充分。GIF格式的定义允许数据流仅包含标题、逻辑屏幕描述符、全局颜色表和GIF拖车。这样的数据流将用于加载全局颜色的解码器表,为没有颜色表的后续数据流做准备。12.区块、扩展和范围。块可以分为三组:控制、图形渲染和特殊用途。控制块,如标题、逻辑屏幕描述符、图形控制扩展插件和拖车包含信息用于控制数据流的进程或设置中使用的信息硬件参数。图形渲染块,如图像描述符和5纯文本扩展包含用于呈现图形的信息和数据在显示设备上。特殊目的块,如注释扩展和应用程序扩展既不用于控制数据的处理流也不包含用于在显示设备。除了逻辑屏幕描述符和全局颜色表,其范围是整个数据流,所有其他控件块的范围有限,仅限于Graphic-Rendering块跟随他们。特殊目的块不限定任何控制的范围阻碍;专用块对解码过程是透明的。Graphic-Rendering块和扩展用作控制块和扩展。用于识别标记块的标签分为三个范围:0x00-0x7F(0-127)是图形渲染块,不包括拖车(0x3B);0x80-0xF9(128-249)是控制块;0xFA-0xFF(250-255)是专用块。这些范围的定义如下解码器可以通过适当识别块标签来处理块范围,即使块本身无法处理。13.砌块尺寸。块中的块大小字段统计块,不计算块大小字段本身,也不计算块终结者,如果有人跟随。数据块以外的块用于长度固定;提供块大小字段是为了方便跳过它们,不要让它们的大小在未来发生变化。数据块和子块的长度可变,以适应数据量。14.使用GIF作为嵌入式协议。作为嵌入式协议,GIF可能是更大应用程序协议的一部分,其中GIF用于渲染图形。在这种情况下,应用程序协议可以定义GIF数据流所在的块包含。然后,应用程序将调用GIF解码器遇到GIF类型的块。建议采用这种方法使用应用程序扩展,这将成为所有其他应用程序的开销不处理它们。因为GIF数据流必须在上下文中,应用程序必须依赖某些识别GIF数据的方法流本身之外的流。15.数据子块。a.说明。数据子块是包含数据的单元。他们没有有一个标签,这些块是在控件的上下文中处理的块,只要在格式中指定了数据块。第一个字节数据子块的表示要遵循的数据字节数。A类数据子块可以包含0到255个数据字节。的大小块不考虑字节本身的大小,因此子块的大小字段包含0x00。b.所需版本。87a年。6c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||块大小字节+---------------+1 | |+- -+2 | |+- -+3 | |+- -+||数据值字节+- -+向上||+- . . . . -+到||+- -+| |+- -+255 | |+---------------+i) 块大小—数据子块中的字节数;大小必须在0和255字节之间(包括0和255字节)。ii)数据值-任何8位值。肯定有这么多数据值由块大小字段指定。d.扩展和范围。这种类型的块总是作为更大的单位。它本身没有范围。e.建议。没有。16.块终止器。a.说明。此零长度数据子块用于终止数据子块序列。它在的位置包含一个字节块大小字段,不包含数据。b.所需版本。87a年。c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||块大小字节+---------------+i) 块大小—数据子块中的字节数;这个字段包含固定值0x00。ii)数据值-此块不包含任何数据。7d.扩展和范围。此块终止前一个数据子块序列。此块不能由任何扩展。e.建议。没有。17.标题。a.说明。标题标识上下文中的GIF数据流。这个签名字段标记数据流的开始,以及版本字段标识解码器完全需要的一组功能处理数据流。此块是必需的;必须只有一个标题每个数据流都存在。b.所需版本。不适用。此块不受版本号。此块必须出现在每个数据的开头流。c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||签名3字节+- -+1 | |+- -+2 | |+---------------+3||版本3字节+- -+4 | |+- -+5 | |+---------------+i) 签名-标识GIF数据流。此字段包含固定值“GIF”。ii)版本-用于格式化数据流的版本号。确定解码器所需的最小功能集以完全处理数据流的内容。截至1990年7月10日的版本号:“87a”-1987年5月“89a”——1989年7月版本号在前两个版本号上按数字递增排序以87(87,88,…,99,00,…,85,86)和按字母顺序增加第三个字符(a,…,z)。iii)扩展和范围。此块的范围是整个数据流。此块不能被任何扩展名修改。8d.建议。i) 签名-此字段标识GIF数据的开头溪流;它不打算为数据的标识。建议GIF数据流由应用程序外部标识。(参考附录G用于GIF数据流的在线识别。)ii)版本-编码器:编码器应尽可能早地使用定义数据流中使用的所有块的版本号。当组合两个或多个数据流时生成的数据应使用单独的版本号流。解码器:解码器应尝试处理数据尽其所能;如果遇到版本不能完全处理的数字,应该尽管如此,还是要尽力处理数据流可能是在警告用户数据可能不完整。18.逻辑屏幕描述符。a.说明。逻辑屏幕描述符包含参数需要定义显示设备的区域将渲染图像。该块中的坐标如下所示相对于虚拟屏幕的左上角;他们没有必须参考显示设备上的绝对坐标。这个意味着它们可以引用基于窗口的窗口坐标使用打印机时的环境或打印机坐标。此块是必需的;必须只有一个逻辑屏幕描述符按数据流显示。b.所需版本。不适用。此块不受版本号。此块必须紧跟在标题之后。c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||无符号逻辑屏幕宽度+- -+1 | |+---------------+2||无符号逻辑屏幕高度+- -+3个||+---------------+4 | | | | |请参见下文+---------------+5||背景色索引字节+---------------+6||像素纵横比字节+---------------+9=全局颜色表标志1位颜色分辨率3位排序标志1位全局颜色表大小3位i) Logical Screen Width—逻辑屏幕的宽度(像素)图像将在显示设备中渲染的位置。ii)逻辑屏幕高度-逻辑屏幕的高度(像素)将在显示设备中渲染图像的屏幕。iii)全局颜色表标记-表示存在全局颜色表;如果设置了标志,则全局颜色表将立即跟随逻辑屏幕描述符。此标志也选择背景颜色索引的解释;如果标志,则背景颜色索引字段的值应用作背景色的表索引。(此字段是字节的最高有效位。)值:0-后面没有全局颜色表,背景“颜色索引”字段没有意义。1-将立即显示全局颜色表背景颜色索引字段有意义。iv)颜色分辨率-每种原色可用的位数减去1。此值表示图形中颜色的整个调色板选中,而不是图形中实际使用的颜色数。例如,如果此字段中的值为3,则原始图像的每基色有4位可供创建图像。应设置此值以指示原始调色板,即使不是全部颜色调色板在源机器上可用。v) 排序标志-指示是否对全局颜色表进行排序。如果设置了该标志,则全局颜色表将按重要性降低。通常,订单会减少频率,以最频繁的颜色为准。这有助于解码器,使用较少的可用颜色,选择最佳的颜色子集;解码器可以使用表的初始段来呈现图解的。值:0-未排序。1-按重要性递减排序,大多数首先是重要的颜色。vi)全局颜色表的大小-如果全局颜色表标志为设置为1时,此字段中的值用于计算数字全局颜色表中包含的字节数。为了确定颜色表的实际大小,将2提高到[字段的值+ 1]. 即使没有指定“全局颜色表”,也要设置此字段,以便解码器可以选择显示流的最佳图形模式。(此字段是由字节的3个最低有效位组成。)vii)背景色索引-全球颜色表索引10背景颜色。背景色是用于屏幕上没有图像覆盖的像素。如果全局颜色表标志设置为(零),此字段应为零应该忽略。viii)像素纵横比-用于计算近似值的因子原始图像中像素的纵横比。如果字段值不是0,这是纵横比的近似值根据以下公式计算:纵横比=(像素纵横比+15)/64像素纵横比定义为像素的商宽度超过高度。此字段中的值范围允许最宽像素4:1到最高像素的规格1:4,增量为1/64。值:0-未提供纵横比信息。1..255-计算中使用的值。d.扩展和范围。此块的范围是整个数据流。此块不能被任何扩展名修改。e.建议。没有。19.全局颜色表。a.说明。此块包含一个颜色表,它是表示红-绿-蓝三色的字节。全局颜色表由没有本地颜色表的图像和纯文本使用延期。其存在由以下全局颜色表标志标记在逻辑屏幕描述符中设置为1;如果存在,请立即遵循逻辑屏幕描述符并包含大量字节等于3 x 2^(全局颜色表的大小+1)。此块是可选的;最多可以存在一个全局颜色表每个数据流。b.所需版本。第87页11c.语法。7 6 5 4 3 2 1 0字段名称类型+===============+0||红色0字节+- -+1||绿色0字节+- -+2||蓝色0字节+- -+3||红色1字节+- -+||绿色1字节+- -+向上||+- . . . . -+ ...到||+--+||绿色255字节+- -+767||蓝色255字节+===============+d.扩展和范围。此块的范围是整个数据流。此块不能被任何扩展名修改。e.建议。没有。20.图像描述符。a.说明。数据流中的每个图像都由一个图像组成描述符、可选的局部颜色表和图像数据。每个图像必须符合定义的逻辑屏幕边界在逻辑屏幕描述符中。图像描述符包含处理表所需的参数基于图像。此块中给出的坐标是指坐标在逻辑屏幕中,和以像素为单位。此块是一个Graphic-Rendering块,前面可以有一个或多个控件块,例如图形控制扩展,并且可以是可选的然后是本地颜色表;始终遵循图像描述符根据图像数据。图像需要此块。必须只有一个图像描述符出现在数据流中的每个图像中。无限数量的图像可能存在于每个数据流中。b.所需版本。87a年。12c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||图像分隔符字节+---------------+1||图像左位置无符号+- -+2个||+---------------+3||图像顶部位置无符号+- -+4 | |+---------------+5||无符号图像宽度+- -+6 | |+---------------+7||无符号图像高度+- -+8 | |+---------------+9 | | | | | |请参见下文+---------------+=本地颜色表标志1位交错标志1位排序标志1位保留2位本地颜色表大小3位i) 图像分隔符-标识图像的开头描述符。此字段包含固定值0x2C。ii)图像左位置-左边缘的列数(像素)相对于逻辑屏幕的左边缘。逻辑屏幕的最左侧列为0。iii)图像顶部位置-以像素为单位的相对于逻辑屏幕上边缘的图像。顶部逻辑屏幕的行是0。iv)图像宽度-以像素为单位的图像宽度。v) 图像高度-图像的高度(以像素为单位)。vi)本地颜色表标记-表示存在本地颜色紧跟在此图像描述符之后的表。(此字段是字节的最高有效位。)值:0-不存在本地颜色表。使用全局颜色表(如果可用)。1-存在本地颜色表,并遵循紧跟在此图像描述符之后。13vii)隔行标志-指示图像是否隔行。图像以四遍隔行模式隔行;参见附录E细节。值:0-图像不隔行。1-图像交错。viii)排序标志-指示本地颜色表是否排序。如果设置了标志,则在中对本地颜色表进行排序重要性递减的顺序。通常,订单如下频率降低,以最频繁的颜色为准。这有助于选择最佳子集时可用颜色较少的解码器颜色;解码器可以使用表的初始段来渲染图形。值:0-未排序。1-按重要性递减排序,大多数首先是重要的颜色。ix)本地颜色表的大小-如果本地颜色表标志为设置为1时,此字段中的值用于计算数字本地颜色表中包含的字节数。为了确定颜色表的实际大小,将字段值增加2+ 1. 如果没有本地颜色表,则该值应为0明确规定。(该字段由3个最低有效位组成字节的大小。)d.扩展和范围。此块的范围是基于表的图像其后的数据块。此块可以通过图形修改控制扩展。e.建议。没有。21.局部颜色表。a.说明。此块包含一个颜色表,它是表示红-绿-蓝三色的字节。本地颜色表由紧随其后的图像使用。其存在的标志是图像描述符中设置为1的本地颜色表标志;如果现在,局部颜色表紧跟在图像描述符之后并且包含的字节数等于3x2^(本地颜色表的大小+1)。如果存在,此颜色表将临时成为活动颜色表下面的图像应该使用它进行处理。这个块是可选;每个图像最多可以显示一个本地颜色表描述符及其范围是与图像关联的单个图像它前面的描述符。b.所需版本。87a年。14c.语法。7 6 5 4 3 2 1 0字段名称类型+===============+0||红色0字节+- -+1||绿色0字节+- -+2||蓝色0字节+- -+3||红色1字节+- -+||绿色1字节+- -+向上||+- . . . . -+ ...到||+- -+||绿色255字节+- -+767||蓝色255字节+===============+d.扩展和范围。此块的范围是基于表的图像紧跟其后的数据块。此块不能被修改任何扩展。e.建议。没有。22.基于表格的图像数据。a.说明。基于表的图像的图像数据由子块序列,每个块的大小最多为255字节,包含索引到活动颜色表中,针对图像中的每个像素。像素指数按从左到右、从上到下的顺序排列。每个索引必须在活动颜色表的大小范围内,从位于0。索引序列使用LZW算法进行编码可变长度代码,如附录F所述b.所需版本。87a中。c.语法。图像数据格式如下:7 6 5 4 3 2 1 0字段名称类型+---------------+||LZW最小代码大小字节+---------------++===============+| |//图像数据子块| |+===============+15i) LZW最小代码大小。此字节确定初始编号图像数据中用于LZW代码的位,如中所述附录F。d.扩展和范围。此块没有范围,它包含光栅数据。必须出现用于修改基于表格的图像的扩展在相应的图像描述符之前。e.建议。没有。23.图形控制扩展。a.说明。图形控制扩展包含使用的参数处理图形渲染块时。此扩展的范围是接下来的第一个图形渲染块。扩展仅包含一个数据子块。此块是可选的;最多可以在一个图形控制扩展之前图形渲染块。这是对数量的唯一限制数据流中可能包含的图形控件扩展。b.所需版本。89a页。c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||扩展介绍人字节+---------------+1||图形控制标签字节+---------------++---------------+0||块大小字节+---------------+1 | | | | |请参见下文+---------------+2||无符号延迟时间+- -+3 | |+---------------+4||透明颜色索引字节+---------------++---------------+0||块终止符字节+---------------+=保留3位处理方法3位用户输入标志1位透明颜色标志1位i) 扩展介绍人-标识扩展的开始16块。此字段包含固定值0x21。ii)图形控制标签-将当前块标识为图形控制扩展。此字段包含固定值0xF9。iii)块大小-块中的字节数,位于块之后大小字段,最多不包括块终止符。这个字段包含固定值4。iv)处理方法-指示图形的处理方式展示后进行处理。值:0-未指定处置。解码器是无需采取任何行动。1-请勿丢弃。图形将被保留到位。2-还原为背景色。使用的区域图形必须恢复为背景色。3-恢复到上一个。解码器需要用恢复被图形覆盖的区域渲染图形之前有什么。4-7-待定。v) 用户输入标志-指示用户输入是否应为,然后继续。如果设置了标志,则处理将输入用户输入后继续。用户输入的性质由应用程序决定(回车、鼠标按钮单击等)。值:0-不需要用户输入。1-需要用户输入。使用延迟时间并设置用户输入标志时,当收到用户输入或延迟时间到期,以先到者为准。vi)透明度标志-表示透明度指数是否在透明索引字段中给定。(此字段是最小的字节的有效位。)值:0-未给定透明索引。1-给出了透明索引。vii)延迟时间-如果不是0,则此字段指定继续之前等待百分之一(1/100)秒数据流的处理。时钟立即开始滴答作响图形渲染后。此字段可用于与“用户输入标志”字段结合使用。viii)透明度指数-透明度指数是指当遇到时,显示设备的相应像素不是修改后继续处理下一个像素。索引是当且仅当“透明度标志”(Transparency Flag)设置为1时才显示。ix)块终止符-此零长度数据块标记17图形控制扩展插件。d.扩展和范围。此扩展的范围是图形渲染它后面的块;其他扩展可以出现在这个方块和它的目标之间。此块可以修改图像描述符块和纯文本扩展。e.建议。i) 处置方法-恢复到上一个模式旨在用于图形的小部分;该模式的使用强制对解码器存储图形部分的严格要求这需要保存。因此,应使用此模式谨慎地。此模式不用于保存整个图形或图形的大面积;在这种情况下,编码器应该尽一切努力使图形的各个部分恢复数据流中的单独图形。在以下情况下解码器无法保存标记为的图形区域还原到上一个,建议解码器还原到背景色。ii)用户输入标志-当设置标志时,表示用户输入为预期值,解码器可能会鸣响铃声(0x07)以发出警报预期输入的用户。如果没有指定的延迟时间,解码器应等待用户输入无限期。建议编码器不要设置用户未指定延迟时间的输入标志。24.注释扩展。a.说明。注释扩展包含文本信息不是GIF数据流中实际图形的一部分。它是合适的包括关于图形、学分、描述或任何其他类型的非控制和非图形数据。注释扩展可能被解码器忽略,也可能被保存以供以后处理;在任何情况下,注释扩展都不应中断或干扰处理数据流。此块是可选的;数据流中可能会出现任意数量的数据。b.所需版本。89a页。18c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||延长导管鞘字节+---------------+1||注释标签字节+---------------++===============+| |注释数据数据子块| |+===============++---------------+0||块终止符字节+---------------+i) 扩展介绍人-标识扩展的开始块。此字段包含固定值0x21。ii)注释标签-将块标识为注释扩展。此字段包含固定值0xFE。iii)注释数据-子块的顺序,每个子块的最大大小255个字节和至少1个字节,大小在前一个字节中数据。序列的末尾由块标记终结者。iv)块终止符-此零长度数据块标记注释扩展。d.扩展和范围。此块没有作用域。这个街区不能用任何扩展名修改。e.建议。i) 数据-此块用于人类。它应该包含使用7位ASCII字符集的文本。该区块应不用于存储自定义处理的控件信息。ii)位置-此块可能出现在数据中的任何点块可以开始的流;然而,建议注释扩展不会干扰控制或数据块;它们应该位于数据的开头或结尾尽可能流。25.纯文本扩展。a.说明。纯文本扩展包含文本数据和以简单形式将数据呈现为图形所需的参数。文本数据将使用7位可打印ASCII编码字符。文本数据使用字符单元格网格呈现19由块字段中的参数定义。渲染每个角色在单个单元格中。将呈现此块中的文本数据作为单间距字符,每个单元格一个字符,具有最佳拟合字体和大小。有关更多信息,请参阅建议如下。数据字符从块的数据部分,并在单元格中渲染,从网格中的左上角单元格,从左到右从上到下。文本数据一直呈现到数据结束达到或填充字符网格。字符网格包含单元的整数;如果单元格尺寸不考虑到整数,必须放弃分数单元格;一个编码器必须小心准确地指定网格尺寸,以便这不会发生。此块需要全局颜色表可用;此块使用的颜色参考全局颜色表在流中(如果有),或从上一个流(如果已保存)。此块是图形渲染块,因此可以通过图形控制扩展对其进行修改。这个街区可选;数据流中可能会出现任意数量的数据。b.所需版本。89a页。20c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||扩展介绍人字节+---------------+1||纯文本标签字节+---------------++---------------+0||块大小字节+---------------+1||文本网格左位置无符号+- -+2 | |+---------------+3||文本网格顶部位置无符号+- -+4 | |+---------------+5||无符号文本网格宽度+- -+6 | |+---------------+7||无符号文本网格高度+- -+8个||+---------------+9||字符单元格宽度字节+---------------+10||字符单元格高度字节+---------------+11||文本前景颜色索引字节+---------------+12||文本背景颜色索引字节+---------------++===============+| |N||纯文本数据数据子块| |+===============++---------------+0||块终止符字节+---------------+i) 扩展介绍人-标识扩展的开始块。此字段包含固定值0x21。ii)纯文本标签-将当前块标识为纯文本扩展。此字段包含固定值0x01。iii)块大小-块后扩展中的字节数大小字段,最多不包括数据开头部分。此字段包含固定值12。21iv)文本网格左侧位置-左侧的列数(像素)文本网格的边缘,相对于Logical的左边缘屏幕。v) 文本网格顶部位置-上边缘的行号(以像素为单位)相对于Logical的上边缘屏幕。vi)图像网格宽度-文本网格的宽度(以像素为单位)。vii)图像网格高度-文本网格的高度,以像素为单位。viii)字符单元格宽度-中每个单元格的宽度(像素)网格。ix)字符单元格高度-中每个单元格的高度(以像素为单位)网格。x) 文本前景颜色索引-索引到全局颜色表用于呈现文本前景。xi)文本背景颜色索引-索引到全局颜色表用于呈现文本背景。xii)纯文本数据-子块的序列,每个块的最大大小255个字节和至少1个字节,大小在前面一个字节中数据。序列的末尾由块标记终结者。xiii)块终止符-此零长度数据块标记结束纯文本数据块的。d.扩展和范围。此块的范围是纯文本数据包含在其中的块。此块可以由图形控件修改扩展。e.建议。假定纯文本扩展中的数据为预格式化。字体和大小的选择由解码器。如果小于0x20或大于0xf7的字符遇到时,建议解码器显示空格字符(0x20)。编码器应使用网格和单元格尺寸,以便在水平方向和垂直地。为了实现最广泛的兼容性,字符单元维度应该约为8x8或8x16(宽x高);考虑一个不寻常的形象调整文本大小。26.申请扩展。a.说明。应用程序扩展包含特定于应用程序的信息;它符合所描述的扩展块语法,其块标签为0xFF。b.所需版本。89a页。22c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||扩展介绍人字节+---------------+1||扩展标签字节+---------------++---------------+0||块大小字节+---------------+1 | |+- -+2 | |+- -+3||应用程序标识符8字节+- -+4 | |+- -+5 | |+- -+6个||+- -+7 | |+- -+8 | |+---------------+9 | |+- -+10||申请。身份验证代码3字节+- -+11 | |+---------------++===============+| |||应用程序数据子块| || |+===============++---------------+0||块终止符字节+---------------+i) 扩展引入器-将此块定义为扩展。这个字段包含固定值0x21。ii)应用程序扩展标签-将块标识为应用程序扩展。此字段包含固定值0xFF。iii)块大小-此扩展块中的字节数,在“块大小”字段后面,最多不包括应用程序数据的开头。此字段包含固定的值11。23iv)应用程序标识符-八个可打印ASCII序列用于标识拥有应用程序的应用程序的字符扩展。v) 应用程序身份验证代码-使用的三个字节的序列验证应用程序标识符。应用程序可以使用算法计算唯一的二进制代码将其标识为拥有应用程序扩展的应用程序。d.扩展和范围。此块没有作用域。这个街区不能用任何扩展名修改。e.建议。没有。27.拖车。a.说明。此块是一个单字段块,表示GIF数据流。它包含固定值0x3B。b.所需版本。87a年。c.语法。7 6 5 4 3 2 1 0字段名称类型+---------------+0||GIF尾部字节+---------------+d.扩展和范围。此块没有作用域,它将终止GIF数据流。此块不能通过任何扩展进行修改。e.建议。没有。24附录A.快速参考表。块名必需的标签扩展版本。应用程序扩展选项。(*)0xFF(255)是89a注释扩展选项。(*)0xFE(254)是89a全局颜色表选项。(1) 无无87a图形控制扩展选项。(*)0xF9(249)是89a标题请购单。(1) 无无N/A图像描述符选项。(*)0x2C(044)编号87a(89a)本地颜色表选项。(*)无87a号逻辑屏幕描述符要求。(1) 无编号87a(89a)纯文本扩展选项。(*)0x01(001)是89a拖车要求。(1) 0x3B(059)编号87a未标记的块标题要求。(1) 无无N/A逻辑屏幕描述符要求。(1) 无编号87a(89a)全局颜色表选项。(1) 无无87a本地颜色表选项。(*)无87a号Graphic-Rendering块纯文本扩展选项。(*)0x01(001)是89a图像描述符选项。(*)0x2C(044)编号87a(89a)控制块图形控制扩展选项。(*)0xF9(249)是89a专用砌块拖车要求。(1) 0x3B(059)编号87a注释扩展选项。(*)0xFE(254)是89a应用程序扩展选项。(*)0xFF(255)是89a图例:(1)如果存在,最多出现一次(*)零次或多次出现(+)一次或多次出现注:标题不受版本号限制。(89a)逻辑屏幕描述符和图像描述符保留了它们的从版本87a到版本89a的语法,但版本下保留了一些字段87a在版本89a下使用。25附录B.GIF语法。语法是一种表示顺序的符号形式物体形成较大的物体。语法也用于表示在给定位置可能发生的对象。这里给出的语法表示构成GIF数据流的块序列。语法由列出其规则。每条规则由左手边组成,后面是一些等号的形式,后面是右手边。按照规则右侧描述了如何定义左侧。右手边side由一系列实体组成,可能存在特殊的符号。以下图例定义了GIF语法中使用的符号。图例:<>语法词::=定义符号*零次或多次出现+一个或多个事件|备用元件[]可选元素例子:::=标题 *拖车此规则定义实体如下所示。它必须以标题。Header后面是一个名为Logical Screen的实体,它是由另一条规则定义。逻辑屏幕后面是实体数据,下面也由另一个规则定义。最后,实体数据是然后是拖车。由于没有定义Header或拖车,这意味着这些块是在文档中定义的。实体数据后面有一个特殊符号(*),这意味着在此位置,实体数据可以重复任意次数,包括0次。对于有关本主题的进一步阅读,请参阅编程的标准文本语言。语法。::=标题 *拖车::=逻辑屏幕描述符[全局颜色表]::=| ::=[图形控制扩展] ::=|纯文本扩展::=图像描述符[本地颜色表]图像数据::=应用程序扩展|注释扩展名26注:语法表明GIF数据流可以包含标题、逻辑屏幕描述符、全局颜色表和GIF预告片。此特殊情况用于加载GIF解码器和全局Color Table,为后续的数据流做准备,在所有。27附录C.术语表。活动颜色表-用于渲染下一个图形的颜色表。如果下一个图形是具有关联的本地颜色表的图像活动颜色表成为与该图像关联的本地颜色表。如果下一个图形是没有本地颜色表或纯文本的图像扩展,活动颜色表是与数据流(如果有);如果数据中没有全局颜色表流,活动颜色表是从以前的数据保存的颜色表流,或由解码器提供的流。块-组成协议单元的字节集合。一般来说,术语包括已标记和未标记的块以及扩展。数据流-GIF数据流由块和子块组成表示图像和图形,以及要渲染的控件信息它们显示在显示设备上。数据流中的所有控制和数据块必须跟随标题,必须在拖车之前。解码器-能够处理GIF数据流以呈现其中包含的图像和图形。编码器-能够捕获和格式化图像和图形的程序光栅数据,遵循图形交换格式的定义。Extension(扩展)-由Extension Insider 0x21标记的协议块。扩展引入器-定义扩展的标签(0x21)。图形-通过某种算法可以在屏幕上呈现的数据。术语图形比术语图像更通用;除了图像之外,术语graphic还包括文本等数据,使用字符位映射。图像-表示图片或绘图的数据;图像由像素数组称为图像的光栅。光栅-表示图像的像素值数组。28附录D.惯例。动画-图形交换格式不用于动画,尽管它可以以有限的方式完成。字节排序-除非另有说明,否则对多字节数字字段进行排序最低有效字节优先。颜色索引-颜色索引总是指活动颜色表全局颜色表或局部颜色表。颜色顺序-除非另有说明,否则所有三分量RGB颜色值按红、绿、蓝顺序指定。颜色表-全局和局部颜色表都是可选的;如果当前,全局颜色表将用于数据中的每个图像未给出局部颜色表的流;如果存在,则为局部颜色表覆盖全局颜色表。但是,如果颜色表都不是目前,应用程序可以自由使用任意颜色表。如果几个数据流中的图形是相关的,并且都使用相同的颜色表中,编码器可以将颜色表作为全局颜色表放置在第一个数据流,并使后续数据流没有全局颜色表格或任何本地颜色表格;这样,表的开销是消除。建议解码器保存之前的全局颜色与后面的数据流一起使用的表(如果它不包含全局颜色表或任何本地颜色表。一般来说,这允许应用程序使用过去的颜色表,大大减少了传输开销。扩展块-使用Extension Incluser代码定义扩展标记块的开头,然后是块标签,标识扩展类型。扩展代码是0x00到0xFF范围内的数字,包容的。特殊用途扩展对解码器是透明的在线传输数据流时省略。GIF功能对话为接收者请求传输所有区块;这方面的默认状态是不传输特殊功能块。Reserved Fields(保留字段)-所有保留字段的每个位都应设置为零(关闭)。29附录E.交错图像。交错图像的行按以下顺序排列:第1组:每8天。行,从第0行开始。(第1步)第二组:每8天。行,从第4行开始。(第2步)第三组:每4天。行,从第2行开始。(第3步)第四组:每2天。行,从第1行开始。(第4步)以下示例说明了交错图像的行是如何命令。行号交错传递0 ----------------------------------------- 11 ----------------------------------------- 42 ----------------------------------------- 33 ----------------------------------------- 44 ----------------------------------------- 25 ----------------------------------------- 46 ----------------------------------------- 37 ----------------------------------------- 48---------------------------------------------19 ----------------------------------------- 410 ----------------------------------------- 311 ----------------------------------------- 412 ----------------------------------------- 213 ----------------------------------------- 414 ----------------------------------------- 315 ----------------------------------------- 416 ----------------------------------------- 117 ----------------------------------------- 418 ----------------------------------------- 319 ----------------------------------------- 430附录F.可变长度代码LZW压缩。可变长度编码LZW压缩是Lempel-Ziv的变体使用可变长度代码替换的压缩算法在原始数据中检测到的模式。该算法使用代码或根据原文中遇到的模式构造翻译表数据;每个新模式都被输入到表中,其索引用于在压缩流中替换它。压缩器从输入流中获取数据并构建代码或转换表,其中包含遇到的模式;每个新模式都是输入代码表并将其索引添加到输出流中;遇到自上次代码表以来检测到的模式刷新时,它在代码表中的索引被放到输出流中,因此实现了数据压缩。扩展器从压缩的数据流并从中构建代码或翻译表;作为压缩的处理数据流,代码用于索引到代码表中将相应的数据放在解压缩后的输出流上,从而实现数据解压缩。算法的细节解释如下。这个算法的可变长度代码方面基于初始代码大小(LZW-初始代码大小),指定用于压缩代码。当压缩器检测到的图案数量输入流中的模式数超过了当前可编码的模式数比特数,则每个LZW码的比特数增加一。表示实际输出图像的光栅数据流可以是表示为:7 6 5 4 3 2 1 0+---------------+|LZW代码大小|+---------------++---------------+ ----+|块大小||+---------------+ |||+--重复多次|数据字节次数。| | |+---------------+ ----+. . . . . . ------- 终止LZW的代码压缩数据必须出现在阻止终止器。+---------------+|0 0 0 0 00 0 0 0 |块终止符+---------------+将图像从一系列像素值转换为传输或存储的字符流涉及几个步骤。简而言之,这些步骤是:1.确定代码大小-定义表示实际数据。2.压缩数据-将一系列图像像素压缩为一系列31压缩代码。3.构建字节序列-获取压缩代码集并转换为8位字节的字符串。4.打包字节-将字节集打包成以字符开头的块计数和输出。确定代码大小压缩数据流的第一个字节是一个指示最小值的值表示实际像素值集所需的位数。通常情况下这将与颜色位数相同。因为一些算法但是,有一个颜色位的黑白图像必须是显示为代码大小为2。此代码大小值还意味着压缩代码必须从一个开始稍微长一点。压缩LZW算法将一系列数据值转换为一系列代码可以是原始值或指定一系列值的代码。使用文本字符作为类比,输出代码由字符或代码组成表示字符串。GIF中使用的LZW算法在算法上与标准LZW匹配具有以下差异的算法:1.定义了一个特殊的清除代码,用于重置所有压缩/解压缩参数和表格设置为启动状态。此代码的值为2**。例如,如果指示的代码大小为4(图像为4位/像素)清除代码值将为16(10000二进制)。清除代码可以出现在图像数据流中的任意点,因此需要LZW算法处理后续代码,就好像一个新的数据流正在启动一样。编码器应输出Clear代码作为每个图像数据流的第一个代码。2.定义了一个信息结束代码,该代码明确表示图像数据流。遇到此代码时,LZW处理终止。它必须是编码器为图像输出的最后一个代码。这个的价值代码是+1.3.第一个可用的压缩代码值是+2.4.输出代码长度可变,从+每个1位代码,每个代码最多12位。这定义了最大代码值4095(0xFFF)。每当LZW代码值超过当前代码长度时代码长度增加一。然后必须对这些代码进行包装/开箱修改以反映新的代码长度。构建8位字节因为用于GIF的LZW压缩创建了一系列可变长度代码,每个代码在3到12位之间,必须将这些代码重组为一系列8位字节,将是实际存储的字符或传输。这提供了图像的额外压缩。这些代码是形成一个比特流,就好像它们是从右向左压缩的32每次选取8位进行输出。假设每个字符有8位的字符数组,并使用5位代码打包后,布局示例将类似于:+---------------+0||bbbaaaaa公司+---------------+1||dcccccbb+---------------+2个||eeedddd+---------------+3||ggfffffe公司+---------------+4个||hhhhh ggg+---------------+. . .+---------------+否||+---------------+请注意,物理包装安排将随着位的数量而改变每个压缩代码都会更改,但概念保持不变。打包字节创建字节后,将其分组为块,以便通过以下方式进行输出在每个0到255字节的块前面加一个字符计数字节。一个街区使用零字节计数终止给定图像的光栅数据流。这些块是GIF图像的实际输出。此块格式具有允许解码程序读取如果需要,通过读取块计数然后跳过来获取实际图像数据数据。进一步阅读[1] Ziv,J.和Lempel,A.:“序列数据的通用算法压缩”,IEEE信息理论汇刊,1977年5月。[2] Welch,T.:“高性能数据压缩技术”,计算机,1984年6月。[3] Nelson,M.R.:《LZW数据压缩》,Dobb's Journal博士,1989年10月。33附录G.在线能力对话。注:本节目前(1990年7月10日)正在修订中;信息此处提供的内容应作为通用指南。基于此编写的代码信息的设计应该灵活,以适应任何变化修订后的结果。以下序列被定义用于在GIF之间进行中介控制交互式通信线路上的发送方和GIF接收方。这些序列不适用于涉及下载静态GIF的应用程序文件和不被视为GIF文件的一部分。GIF能力查询GIF功能查询序列由主机发出,并请求交互式GIF解码器,用于返回定义图形的响应消息解码器的参数。这包括返回可用信息屏幕大小、支持的比特数/颜色以及颜色细节的数量支持。GIF能力查询的转义序列定义为:电子稳定控制系统[>0g 0x1B 0x5B 0x3E 0x30 0x67GIF能力响应GIF功能响应消息由交互式GIF解码器返回并定义了解码器对于以下所有图形模式的显示功能受软件支持。请注意,这也可以包括图形打印机作为以及监视器屏幕。此消息的一般格式为:#版本;协议{;dev,width,height,color-bits,color-res}。。。“#”GIF功能响应标识符字符。版本GIF格式版本号;最初为“87a”。protocol='0'解码器不支持直接传输的端到端协议8位数据流。protocol='1'可以使用CIS B+纠错协议传输GIF数据交互地从主机直接到显示器。dev='0'屏幕参数集如下。dev='1'打印机参数设置如下。width支持的最大显示宽度(像素)。高度支持的最大显示高度(像素)。颜色-支持的每像素位数。支持的数量因此,颜色是2**色比特。color-res硬件支持的每个颜色组件的位数调色板。如果color-res为“0”,则没有硬件调色板表可用。请注意,GIF功能响应中的所有值都以ASCII格式返回十进制数,消息由回车符终止。以下GIF Capabilities Response消息描述了三种标准IBM PC增强的图形适配器配置,无需打印机;GIF数据流34可以在纠错协议内进行处理:#87a;1;0,320,200,4,0;0,640,200,2,2;0,640,350,4,2进入GIF图形模式目前定义了两个序列来调用交互式GIF解码器行动。它们之间的唯一区别是不同的输出媒体挑选出来的。这些序列是:ESC[>1g在屏幕上显示GIF图像0x1B 0x5B 0x3E 0x31 0x67ESC[>2g将图像直接显示到连接的图形打印机。图像可以也可以在屏幕上显示。0x1B 0x5B 0x3E 0x32 0x67请注意,终止每个序列的“g”字符是小写的。交互式环境GIF图像数据传输的假定环境交互式应用程序是从主机到micro的完整的8位数据流。全部256个字符的代码必须是可传输的。8位数据的建立通信路径通常由主机应用程序负责程序。然而,这取决于接收通信程序支持GIF能够接收所有256个8位代码并将其传递给GIF解码器软件。