手机开发实战153——GIF介绍1
来源:互联网 发布:如何在淘宝上开好网店 编辑:程序博客网 时间:2024/05/18 13:31
GIF格式
标准介绍
GIF(Graphics Interchange Format)的原义是"图像互换格式",是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号定义为GIF89a。
GIF文件格式采用了LZW(Lempel-Ziv Walch)压缩算法来存储图像数据,是一种连续色调的无损压缩格式,其压缩率一般在50%左右,定义了允许用户为图像设置背景的透明(transparency)属性。此外,GIF文件格式可在一个文件中存放多幅彩色图形/图像。如果在GIF文件中存放有多幅图,它们可以像演幻灯片那样显示或者像动画那样演示。
GIF图像文件的数据是经过压缩的,而且是采用了可变长度等压缩算法。所以GIF的图像深度从lbit到8bit,也即GIF最多支持256种色彩的图像。
GIF解码较快,因为采用隔行存放的GIF图像,在边解码边显示的时候可分成四遍扫描。第一遍扫描虽然只显示了整个图像的八分之一,第二遍的扫描后也只显示了1/4,但这已经把整幅图像的概貌显示出来了。在显示GIF图像时,隔行存放的图像会给您感觉到它的显示速度似乎要比其他图像快一些,这是隔行存放的优点。
GIF格式的文件是8为图像文件,最多为256色,不支持Alpha通道。gif格式产生的文件较小,常用于网络传输,做网页上见到的图片大多是gif和jpeg格式的。gif格式与jpeg格式相比,其优点在于gif格式的文件可以保持动画效果。
GFI图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF文件由表示图形/图像的数据块、数据子块以及显示图形/图像的控制信息块组成,称为GIF数据流(Data Stream)。数据流中的所有控制信息块和数据块都必须在文件头(Header)和文件结束块(Trailer)之间。
文件结构
GIF文件结构的典型结构如图所示。为下文说明方便,在构件左边加了编号。
1
Header
GIF文件头
2
Logical Screen Descriptor
逻辑屏幕描述块
3
Global Color Table
全局彩色表
… 扩展模块(任选) …
4
Image Descriptor
图形描述块
5
Local Color Table
局部彩色表(可重复n次)
可
6
Table Based Image Data
表式压缩图像数据
重
7
Graphic Control Extension
图像控制扩展块
复
8
Plain Text Extension
无格式文本扩展块
n
9
Comment Extension
注释扩展块
个
10
Applicaton Extension
应用程序扩展块
… 扩展模块(任选) …
11
GIF Trailer
GIF文件结束块
GIF文件结构
数据块可分成3类:控制块(Control Block),图形描绘块(Graphic-Rendering Block)和专用块(Special Purpose Block)。
(1) 控制块:
GIF文件头(Header)
逻辑屏幕描述块(Logical Screen Descriptor)
图形控制扩展块(Graphic Control Extension)
文件结束块(Trailer)
(2) 图形描绘块:
图像描述块(Image Descriptor)
无格式文本扩展块(Plain Text Extension)
(3) 特殊用途数据块;
注释扩展块(Comment Extension)
应用扩展块(Application Extension)
除了在控制块中的逻辑屏幕描述块(Logical Screen Descriptor)和全局彩色表(Global Color Table)的作用范围是整个数据流(Data Stream)之外, 所有其他控制块仅控制跟在它们后面的图形描绘块。
- 手机开发实战153——GIF介绍1
- 手机开发实战154——GIF介绍2
- 手机开发实战155——GIF介绍3
- 手机开发实战156——GIF介绍4
- 手机开发实战48——手机输入法介绍1
- 手机开发实战9——GSM信道介绍1
- 手机开发实战51——SMS介绍1
- 手机开发实战55——EMS介绍1
- 手机开发实战57——小区广播介绍1
- 手机开发实战59——语音信箱介绍1
- 手机开发实战66——MIME介绍1
- 手机开发实战75——端口介绍1
- 手机开发实战79——Javascript介绍1
- 手机开发实战82——HTML介绍1
- 手机开发实战85——XML介绍1
- 手机开发实战88——WAP介绍1
- 手机开发实战91——PUSH介绍1
- 手机开发实战94——MMS介绍1
- poj 2367 前向星+拓扑排序
- Ubuntu 下安装 Google Chrome
- 手机开发实战152——JPEG介绍3
- PX DPI PPI等概念
- 某NOIP模拟考试——2016.06.12
- 手机开发实战153——GIF介绍1
- Codeforces Round #311 (Div. 2) A~E && DE题解
- <meta>标签用法
- IE办的傻事儿 Exploiting XSS Filter
- Bootstrap缩略图thumbnail
- 二维码知多少
- 手机开发实战154——GIF介绍2
- gdb详细介绍
- 输入一个链表的头结点,从尾到头反过来打印出每个节点的值