ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:24.01KB ,
资源ID:5487760      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5487760.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GIF文件格式详细说明.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

GIF文件格式详细说明.docx

1、GIF文件格式详细说明GIF文件格式一、简介GIF(GraphicsInterchangeFormat)是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号概念为GIF89a。GFI图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF文件由表示图形/图像的数据块、数据子块和显示图形/图像的操纵信息块组成,称为GIF数据流(Data Stream)。数据流中的所有操纵信息块和数据块都必需在文件头(Header)和文件终止块(Trailer)之间。GIF文件格式采纳了LZW(Lempel-ZivW

2、alch)紧缩算法来存储图像数据,概念了许诺用户为图像设置背景的透明(transparency)属性。另外,GIF文件格式可在一个文件中寄存多幅彩色图形/图像。若是在GIF文件中寄存有多幅图,它们能够像演幻灯片那样显示或像动画那样演示。二、文件结构GIF文件结构的典型结构如图6-01所示。为下文说明方便,在构件左侧加了编号。1HeaderGIF文件头2Logical Screen Descriptor逻辑屏幕描述块3Global Color Table全局彩色表 扩展模块(任选) 4Image Descriptor图形描述块5Local Color Table局部彩色表(可重复n次)可6Tab

3、le Based Image Data表式压缩图像数据重7Graphic Control Extension图像控制扩展块复8Plain Text Extension无格式文本扩展块n9Comment Extension注释扩展块个10Applicaton Extension应用程序扩展块 扩展模块(任选) 11GIF TrailerGIF文件结束块图6-01 GIF文件结构数据块可分成3类:操纵块(Control Block),图形刻画块(Graphic-Rendering Block)和专用块(Special Purpose Block)。(1) 操纵块:操纵块包括有效来操纵数据流(Dat

4、a Stream)或设置硬件参数的信息,其成员包括: GIF文件头(Header) 逻辑屏幕描述块(Logical Screen Descriptor) 图形操纵扩展块(Graphic Control Extension) 文件终止块(Trailer)(2) 图形刻画块:包括有效来刻画在显示设备上显示图形的信息和数据,其成员包括: 图像描述块(Image Descriptor) 无格式文本扩展块(Plain Text Extension)(3) 特殊用途数据块;包括有与图像处置无关的信息,其成员包括: 注释扩展块(Comment Extension) 应用扩展块(Application Ext

5、ension)除在操纵块中的逻辑屏幕描述块(Logical Screen Descriptor)和全局彩色表(Global Color Table)的作用范围是整个数据流(Data Stream)之外, 所有其他操纵块仅操纵跟在它们后面的图形刻画块。三、构件详解1. GIF文件头文件头描述块(Header)概念GIF数据流(GIF Data Stream),它的结构如图6-02所示。文件头描述块(Header)由GIF标记域(Signature)和版本号(Version)域组成,是一个由6个固定字节组成的数据块,它们用来讲明利用的文件格式是GIF格式及当前所用的版本号。GIF标记域(Signa

6、ture)寄存的是“GIF”,版本号域寄存的是1987年5月发布的“87a”或1989年7月发布的“89a”,或加倍新的版本号。76543210字节号域的名称数据类型0Signature1GIF标记3 Bytes23Version4版本号3 Bytes5图6-02 标记/版本数据块的结构2. 逻辑屏幕描述块逻辑屏幕描述块(Logical Screen Descriptor)包括概念图像显示区域的参数,包括背景颜色信息。那个数据块中的坐标相关于虚拟屏幕的左上角,不必然是指显示屏的绝对坐标,这就意味能够参照窗口软件环境下的窗口坐标或打印机坐标来设计图像显示程序。逻辑屏幕描述块的结构如图6-03所示

7、:76543210字节号域的名称类型Logical Screen Width0逻辑屏幕宽度Unsigned1(以像素为定单位)Logical Screen Height2逻辑屏幕高度Unsigned3(以像素为定单位)GCRSSize4包装域见图6-04Background Color Index5背景颜色索引BytePixel Aspect Ratio6像素宽高比Byte图6-03 屏幕描述块的结构逻辑描述块包括7个字节。字节0和字节1用来讲明逻辑显示屏的宽度,字节3和字节4用来讲明逻辑显示屏的高度,字节4用来描述彩色表的属性,字节5用来指定背景颜色索引,字节6用来计算像素的宽高比。现作如下

8、说明:(1) 屏幕描述块中的第5个字节称为包装域(Packed Fields),它的位结构如图6-04所示,它由4个子域组成: 全局彩色表标志(Global Color Table Flag )域G用来讲明是不是有全局彩色表存在。若是G1,表示有一个全局彩色表(Global Color Table)将紧跟在那个逻辑屏幕描述块(Logical Screen Descriptor)以后;那个标志也用来选择背景颜色索引(Background Color Index)。若是G1,背景颜色索引(Background Color Index)域中的值就用作背景颜色的索引。 彩色分辨率(Color Reso

9、lution)域CR用来表示原始图像可用的每种基色的位数(实际值减1)。那个位数表示整个调色板的大小,而不是这幅图像利用的实际的颜色数。例如,若是该域的值CR3,说明原始图像可用每一个基色有4位的调色板来生成彩色图像。 彩色表排序标志(Sort Flag)域S用来表示全局彩色表(Global Color Table)中的颜色是不是按重要性(或称利用率)排序。若是S0,表示没有重要性排序;若是S1表示最重要的颜色排在前。如此做的目的是辅助颜色数比较少的解码器能够选择最好的颜色子集,在这种情形下解码器就可选择彩色表中开始段的彩色来显示图像。 全局彩色表大小(Size of Global Color

10、 Table)域Size表示表示每一个像素的位数,它用来计算全局彩色表(Global Color Table)中包括的字节数。在全局彩色表标志(Global Color Table Flag)域G0时就不需要计算,G1时就要计算彩色表的大小,具体计算见下文的“3. 全局彩色表”。76543210Global Color Table FlagColor ResolutionSort FlagSize of Global Color Table图6-04 逻辑屏幕描述块中的包装域结构(2) 屏幕描述块中的第6个字节是背景颜色索引(Background Color Index),它是彩色表的一个索引

11、值,用来指定背景颜色。若是全局彩色表标志(Global Color Table Flag)域G0,那个域的值也设置为0。(3) 像素宽高比(Pixel Aspect Ratio)域中的值是一个因数,是计算原始图像像素的宽高比的一个近似值。若是该域的值范围为1255,若是不等于0,宽高比的近似值按下式计算:Aspect Ratio = (Pixel Aspect Ratio + 15) / 64像素宽高比(Pixel Aspect Ratio)定义成像素的宽度与高度之比,比值的范围在4:11:4之间,其增量为1/64。3. 全局彩色表由于一个GIF文件能够包括多幅彩色图像,每幅彩色图像或许都包括

12、适合自身特点的彩色表,因此一个GIF文件能够有好几个彩色表。但归纳起来只有两类:全局彩色表(Global Color Table)或局部彩色表(Local Color Table)。全局彩色表可用于图像本身没有带彩色表的所有图像和无格式文本扩展块(Plain Text Extension),而局部彩色表只用于紧跟在它后面的一幅图像。在处置全局彩色表和局部彩色表时需要注意下面一些规那么。 若是GIF文件包括全局彩色表(Global Color Table),而且要显示的图像本身又带有局部彩色表,那末显示该幅彩色图像时就用它自己的彩色表,而不用全局彩色表。在这种情形下,解码器就第一保留全局彩色表(

13、Global Color Table),然后利用局部彩色表(Local Color Table)来显示图像,最后再答复全局彩色表(Global Color Table)。 全局彩色表(Global Color Table)和局部彩色表(Local Color Table)都是可选择的。由于那个缘故,解码器最好要保留全局彩色表(Global Color Table),一直到显现另一个全局彩色表(Global Color Table)为止。如此做以后,关于包括完全没有彩色表的一幅或多幅彩色图像的GIF文件就能够够利用最后保留的全局彩色表(Global Color Table)进行处置。 若是同类型

14、的图像能够利用相同的彩色表来显示,编码器就要尽可能利用一个全局彩色表(Global Color Table);若是没有彩色表可用,解码器就能够够利用运算机系统提供的彩色表或解码器自身的彩色表。 全局彩色表(Global Color Table)存在与否由逻辑屏幕描述块(Logical Screen Descriptor)中字节5的全局彩色表标志(Global Color Table Flag )域G的值确信。若是存在,彩色表就紧跟在逻辑屏幕描述块(Logical Screen Descriptor)以后。彩色表的表项数量等于2(n+1),其中n=b2b1b0,每一个表项由3个字节组成,别离代表

15、R、G、B的相对强度,因此彩色表的字节数就等于32(n+1)。彩色表的结构如图6-05所示。7 6 5 4 3 2 1 0字节号域的名称数据类型red intensity0红色索引 000Bytegreen intensity1绿色索引 000Byteblue intensity2蓝色索引 000Bytered intensity3红色索引 001Bytegreen intensity4绿色索引 001Byteblue intensity5蓝色索引 001Bytered intensity745红色索引 255Bytegreen intensity746绿色索引 255Byteblue int

16、ensity767蓝色索引 255Byte图6-05 彩色表结构局部彩色表与全局彩色表有相同的存储格式。4. 图像描述块GIF图像文件格式可包括数量不限的图像,而且也没有一个固定的寄存顺序,仅用一个字节的图像分隔符(Image Separator)来判定是不是图像描述块。每一幅图像都由一个图像描述块(Image Descriptor)、可有可无的局部彩色表(Local Color Table)和图像数据组成。每幅图像必需要落在逻辑屏幕描述块(Logical Screen Descriptor)中概念的逻辑屏(Logical Screen)尺寸范围里。图像描述块(Image Descriptor

17、)之前能够有一个或多个操纵块,例如图形操纵扩展块(Graphic Control Extension),其后能够随着一个局部彩色表(Local Color Table)。不管前后是不是有各类数据块,图像描述块(Image Descriptor)老是带有图像数据。图像描述块(Image Descriptor)的结构如图6-06所示。76543210字节号域的名称类型Image Separator0图像分隔符ByteImage Left Position1图像左边位置Unsigned2(以像素为定单位)Image Top Position3图像顶部位置Unsigned4(以像素为定单位)Image

18、 Width5图像宽度Unsigned6(以像素为定单位)Image Height7图像高度Unsigned8(以像素为定单位)9包装域见图6-07图6-06 图像描述块的结构在图6-06中,图像分隔符(Image Separator)用来标识图像描述块的开始,该域包括固定的值:0x2C;图像左侧位置(Image Left Position)是相关于逻辑屏幕(Logical Screen)最左侧的列号,逻辑屏幕最左侧的列好概念为0;图像顶部位置(Image Top Position) 是相关于逻辑屏幕(Logical Screen)顶部的行号,逻辑屏幕顶部的行号概念为0。76543210Loc

19、al Color Table FlagInterlace FlagSort FlagReservedSize of Local Color Table图6-07 图像描述块中的包装域结构图像描述块(Image Descriptor)中的第9个字节称为包装域(Packed Fields)字节,它的位结构如图6-07所示,它由5个子域组成: 局部彩色表标志(Local Color Table Flag )域L用来讲明是不是有局部彩色表存在。若是L1,表示有一个局部彩色表(Local Color Table)将紧跟在那个图像描述块(Image Descriptor)以后;若是G0,表示图像描述块(I

20、mage Descriptor)后面没有局部彩色表(Local Color Table),该图像要利用全局彩色表(Global Color Table)。 交插显示标志(Interlace Flag)域I用来表示该图像是不是交插图像(Interlaced Images)。若是I0,表示该图像不是交插图像,若是I1表示该图像是交插图像。利用该位标志可明白图像数据是如何寄存的。GIF文件格式概念了两种数据存储方式:一种是按图像行持续顺序存储,那个顺序与显示器上显示行的顺序相同;另一种按交插方式存储。交插图像按行分成如下所示的4组(Group):Group 1:每隔8行组成一组,从第0行开始显示 /

21、第1遍交插Group 2:每隔8行组成一组,从第4行开始显示 /第2遍交插Group 3:每隔4行组成一组,从第2行开始显示 /第3遍交插Group 4:每隔2行组成一组,从第1行开始显示 /第4遍交插由于显示图像需要较长的时刻,利用这种方式寄存和显示图像数据,人们就能够够在图像显示完成之前看到这幅图像的概貌,而不感觉显示时刻长。图6-08说明了这种交插图像的存储和显示顺序。行号像点交插遍次01142334425463748194103114122134143154161174183194图6-08 交插图像显示顺序 彩色表排序标志(Sort Flag)域的含义与全局彩色表(Global Co

22、lor Table)中(Sort Flag)域的含义相同。 保留(Reserved)。 局部彩色表大小(Size of Local Color Table)域的值用来计算局部彩色表(Global Color Table)中包括的字节数。5. 局部彩色表局部彩色表(Local Color Table)用于紧跟在它后面的图像。彩色表是不是存在取决于图像描述块(Image Descriptor)中局部彩色表标志(Local Color Table Flag)位的设置。彩色表的结构和大小与全局彩色表(Global Color Table)完全相同。6. 表基图像数据GIF图像采纳了LZW算法对实际的图

23、像数据进行紧缩。为了提高紧缩编码的效率,对LZW编码器输出的代码采纳可变长度码VLC(variable-length-code),不是用位数高度的代码来表示输出,而且代表码字的位数是可变的。表基图像数据(Table Based Image Data)由LZW最小代码长度(LZW Minimum Code Size)和图像数据(Image Data)组成,如图6-09所示。LZW最小代码长度域的值用来确信图像数据中LZW代码利用的初始位数。图像数据(Image Data)由数据子块(Data Sub-blocks)序列组成。76543210域的名称类型LZW Minimum Code SizeL

24、ZW最小代码长度ByteImage Data图像数据DataSub-blocks图6-09 图像数据的存储格式数据子块(Data Sub-blocks)的结构如图6-10所示,这是一个可变长度的数据块,其长度由块大小域(Block Size)域中的值确信,字节数在0255之间。7 6 5 4 3 2 1 0字节号域的名称数据类型Block Size0块大小Byte1ByteByteData Values数值ByteByteByte多Byte到Byte255Byte图6-10 数据子块的结构7. 图形操纵扩展块图形操纵扩展块(Graphic Control Extension)包括处置图形刻画块

25、时要利用的参数,它的结构如图6-11所示。现说明如下:(1) 扩展导入符Extension Introducer)用于识别扩展块的开始,域中的值是一个数值等于0x21的固定值。(2) 图形操纵标签(Graphic Control Label)用于标识当前块是一个图形操纵扩展块,域中的值是一个数值等于0xF9的固定值。(3) 块大小(Block Size)用来讲明该扩展块所包括字节数,该字节数是从那个块大小(Block Size)域以后到块终止符之间的字节数。76543210字节号域的名称类型Extension Introducer0扩展导入符ByteGraphic Control Label1

26、图形扩展标签ByteBlock Size0块大小Byte1包装域See belowDelay Time2延时时间UnsignedTransparent Color Index3透明彩色索引ByteBlock Terminator0块结束符Byte图6-11 图像描述块的结构(4) 包装域的结构如图6-12所示。处置方式(Disposal Method)规定图形显示以后译码器要用表6-03中所述方式进行处置。表6-03 包装域规定的处置方式域值处理方法0没有指定要做任何处理1不处理,图形留在原处2显示图形的区域必须要恢复成背景颜色3恢复成以前显示的图形47(未定义)用户输入标志(User Input Flag)域表示在继续处置之前是不是需要用户输入响应。在延不时刻(Delay Time)和用户输入标志(User Input Flag)都设置为1的情形下,继续处置的开始时刻取决于用户响应输入在前仍是延不时刻终止在前。76543210Reserved(保留)Disposal Method(处理方法)User Input FlagTransparent Color Flag图6-12 图形操纵扩展块的包装结构(5) 透明(Tr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1