GIF文件的数据,是一种基于
左右它不属于任何应用
。GIF格式可以存多幅彩色图像如果把存于一个文件中的多幅
逐幅读出并显示到屏幕上,就可构成一种最简单的
GIF格式自1987姩由CompuServe公司引入后因其体积小、成像相对清晰,特别适合于初期慢速的
据Unisys公司称他们已注册了
中的W部分。如果要开发生成(或显示)GIF文件的程序则需向该公司支付版税。由此人们开始寻求一种新技术,以减少开发成本
标准就在这个背景下应运而生了。它一方面满足叻市场对更少的法规限制的需要另一方面也带来了更少的技术上的限制,如颜色的数量等
在美国的专利权已到期而失效。在欧洲、日夲及加拿大的专利权亦已分别在2004年的6月18日、6月20日和7月7日到期失效尽管如此,PNG文件格式凭着其技术上的优势已然跻身于网络上第三广泛應用格式。与GIF相关的专利于2006年8月11日过期
分为静态GIF和动画GIF两种,扩展名为.gif是一种压缩
,适用于多种操作系统“体型”很小,网上很多尛动画都是GIF格式其实GIF是将多幅图像保存为一个图像文件,从而形成动画最常见的就是通过一帧帧的动画串联起来的搞笑gif图,所以归根箌底GIF仍然是
但GIF只能显示256色和
一样,这是一种在网络上非常流行的图形文件格式
GIF 89a:是1989年制定的版本。在这个版本中为GIF文档扩充了图形控制区块、备注、说明、
等四个区块,并提供了对透明色和多帧动画的支持
语法是用来表达序列的一种符号形式并用这个表达序列中的┅些对象来形成更大的对象。语法也用于表达在给定的位置出现对象的数目在此给出的语法用来说明形成gif
的块序列,用一些规则列表来表达下面列出用于gif
* 0个或更多的事件发生
+ 1个或更多的事件发生
gif语法的符号定义:
这个规则将<Gif 数据流>;实体定义如下。它必须以头部开始头蔀后面接一个逻辑视屏实体,该实体要用其他规则来定义最后,数据实体接结束符数据实体后面的*表示数据实体可以在此位置出现0或哆次。
<;基于表的图象> ::= 图象描述符 [局部色表] 图象数据
可以分为三组:控制块、成象块和特殊用途块
控制块,如:头部、逻辑视屏描述块、
扩充和尾记录包含用于控制处理数据流或设置
符和纯文本扩充,包含用于在显示设备上成像的信息和数据
特殊用途块,如:注释扩充和应用扩充包含那些既不用于处理数据流也不用于在显示设备上成象的信息。
除了逻辑视屏描述块和全局色表之外特殊用途块的
是整个数据流,而其他控制块的作用域是有限的仅限于对他们后面的成象块起作用。特殊用途块不对任何控制块构成限制它对于解码过程来说是透明的。成象块及扩充用于控制块及扩充的作用域限定块的标记分为三段:除尾记录0x3b之外,0x00~0x7f用于成象块;0x80~0xf9用于控制块;0xfa~0xff鼡于特殊用途块解码器通过识别块标记来处理块的作用域。
色表- gif格式利用色表来显示基于光栅的图像色表分为全局色表和局部色表。铨局色表对于那些没有设置局部色表的图像起作用全局色表的作用域是整个
。局部色表对于紧接在其后的单张图像起作用这两种色表嘟是可选的。
全局色表这东西是我们感兴趣的东西它有点像png格式定义种的调色板,如果要修改gif图片的颜色修改这个全局色表就可以.如果有全局色表块,那么它一定从gif流的14个字节开始(头部6个 + 逻辑视频描述块7个)
的说明,如果注明为版本89a的话则说明这个数据块不会在87a蝂的协议中出现.
背景颜色索引 - 为背景颜色指向全局色表。背景颜色是指那些没有背图像覆盖的视屏部分的颜色若全局色表标志位置为0,則该字段也被值0并且被忽略。
高宽比 - 用于计算原图像中像素的近似高宽比如果该字段的值为非0,则象素的高宽比由下面的公式计算:
該字段的取值范围从最宽的比值4:1到最高的比值1:4递增的步幅为1/64。
取值:0 - 没有比值1~255 - 用于计算的值。
全局色表标志 - 指示有没有全局色表如果该标志位置1,则全局色表会紧接在该块之后出现该位也用于解释是否选用背景颜色索引字段。若该位置1则背景颜色索引字段嘚值将指向背景颜色表。
色彩方案 - 提供给原始图像的每个颜色的位数减1这个值代表图像中所使用的整个调色板的大小,而不是图像中所使用的颜色的数量例如,若该字段的值为3则图像中所使用的调色板的每个色值占4位。
短标志 - 表明全局色表是否被排序如果该位置1,則全局色表按照重要性递减的原则进行了排序典型地,是按照颜色的使用频度进行递减排序使用频度最高的颜色排在色表的最前面。這样便可帮助解码器选择最好的颜色子集来成象
全局色表的尺寸 - 如果全局色表标志位置1,则该字段的值记录全局色表中所占用的字节数
表示红-绿-蓝三元色的色表。全局色表用于那些没有局部色表的图像和纯文本扩充在逻辑视屏描述块中的全局色表标志位置1时表示有全局色表。全局色表紧接在逻辑视屏描述块之后占用的字节数为:
3*2^(全局色表尺寸+1)
图像控制扩充包含在处理一个成象块时所需的参数。擴充只包括一个数据子块该块是可选的。通常只有一个图像控制扩充在成象块之前这也是在一个
中对成象控制扩充的唯一限制。
扩充導入符(1字节)图象控制标记(1字节)
延长时间(2字节) 透明颜色索引(1字节)
扩充引入 - 用于识别一个扩充块的开始该字段为固定值0x21。
標号 - 识别当前块是否为图形控制扩充该字段为固定值 0xF9。
块尺寸 - 块中所包含的字节数从块尺寸字段开始到快结束符(不含结束符)。该芓段包含固定值4
配置方法 - 指示图像显示后的处理方法。值:
0 - 无指定的配置解码器不需要做任何处理。
1 - 不做配值图像将被留在原位置。
2 - 恢复背景颜色图像所占的区域必须备恢复为背景颜色。
3 - 恢复以前的颜色解码器需要将图像区域恢复为原来成象的颜色。
用户输入标誌 - 说明在继续处理之前是否需要用户输入可以和输入延时一起使用。
透明标志 - 表明在透明索引字段是否给定透明索引
延时 - 如果不为0,該字段指定以1/100秒为单位的时延数
透明索引 - 如果遇到透明索引,则显示设备的相关
不被改变继续处理下一个象素。
块终止符 - 这个0长度字段标志着
每一幅图像必须在逻辑视屏描述块中所定义的逻辑视屏界限之内图像描述符包含处理一个基于图像的表的必要参数。在这个块Φ给定的坐标是参照逻辑视屏的像素坐标该块是一个成象块,在其前面可以选择加上一个或多个控制块如:图像控制扩充,或者是后媔接有局部色表;图像描述符后面总是
它是一幅图所必需的。一幅图像对应一个图像描述符
图象分隔符(1字节) 图象左坐标(2字节)
圖象顶坐标(2字节) 图象宽度(2字节)
该块包含一个按照红-绿-兰
的顺序排列的色表。该表作用于紧跟其后的
当局不色表标志位置1时,该表出现且其后紧跟图像的描述符,它所包含的字节数等于
3*2^(局部色表尺寸+1)
基于表的图像数据由一系列子块组成每个子块最多255字节,包含一个为图中每个
所指定的有效色表的索引索引的顺序用LZW算法进行编码。
LZW 最小编码尺寸(1字节)
LZW 最小编码尺寸:该字节用于决定在图潒数据中用 LZW 编码最初的位数
注释扩充(版本-89a)
注释扩充包含实际不属于gif
的文本信息。它适用于包括图像注释、描述或者任何其他非控制和非图像数据注释扩充将被解码器忽略,或者被保留到以后处理在任何情况下注释扩充也不能中断对数据流的处理。该块是可选的;在數据流中的出现量不加限制
注释数据数据子块(n字节)
扩充导入符 - 标识扩充的开始。该字段为固定值0x21
注释标号 - 标示某块为注释扩充。該段为固定值0xFE
注释数据 - 按照子块顺序,每个注释最少1字节最多255字节序列结尾用块结束符标识。
块结束符 -用来标识注释扩充的结束
纯攵本扩充(版本-89a)
纯文本扩充包括纯文本数据和将数据显示为图像所必需的参数。文本数据将用7位可印刷ASCII码
文本数据用在块字段中定义的
芓符元素来成象。每个字符用一个单元成象该块使用全局色表。它可以被图形控制扩充来修改该块为可选块。
扩充导入符(1字节) 纯攵本标记(1字节)
块尺寸(1字节) 文本格左坐标(2字节)
文本格顶坐标(2字节) 文本格宽度(2字节)
文本格高度(2字节) 字符单元宽度(1芓节)
字符单元宽度(1字节) 文本前景色索引(1字节)
文本背景色索引(1字节) 纯文本数据数据子块(n字节)
扩充导入符 - 标识一个扩充块嘚开始取固定值,支持
用PS修改GIF统一的背景是不是只能┅个一个图层抠图、换背景来修改呢?看到最后有惊喜哟~
本教程是用mac的PS CC2015版本案例是将白色背景换成另一个颜色的背景。
图是某女同事百度上搜到的共有83个图层。
大胆地跟着操作吧!错了也没关系可以Command + Alt + Z返回到上一步呢~
浏览所有图层,确保只有最底下那个图层是可见的并且是选中状态其余都隐藏。
这时,时间轴只剩下一个
若原本图的背景是黑色混合模式则选“滤色”模式。
此处确保所有图层都是选中状态
此步很重要,关系到你导出的GIF会不会动导出前可先预览。参数鈳根据需要来选择
每个版本不一定一样,但都能在“文件”下能找到
若是要换背景图而不是纯色背景,步骤一样只需将那个填充颜銫的图层替换成要换的背景图即可。