常见图片格式详解(五)-----GIF

前几篇梳理了常见的几种图片格式,想必大家已经稍微摸出了一些门道。图片的组织格式一般都是分为多个数据段,每一个数据段代表着不同的信息,可能是图像宽高等信息,也可能是开始或结束的标识符,亦或是压缩的数据段。GIF格式也不例外,同样也是按照类似的方式组织,本篇简单梳理梳理。

01 文件头

GIF图片格式的文件头类似于其他的图片格式,同样也有文件标识符,“GIF”,在文件中以ASCII码值表示,其后跟着版本号,表示不同的GIF标准版本号。如下图:

02 逻辑屏幕标识符
紧跟文件头的是逻辑屏幕标识符。逻辑屏幕标识符描述了GIF文件的宽度,高度,以及颜色深度和有无全局颜色列表等信息。详细如下图:

03 全局颜色列表

根据逻辑屏幕标识符的描述,全局颜色列表描述的是不同索引所对应的颜色值。同时全局颜色列表必须紧跟在逻辑屏幕标识符之后。详细如下图:

04 图像标识符

图像标识符便是具体的图像数据开始的位置。而对于GIF图片而言,如果有动态效果的话,意味着一个GIF文件可能出现多个这样的标识符。每一个标识符的开头同样描述了图片的宽高等信息,紧接着是局部的颜色列表,局部颜色列表之后的便是图像的压缩数据。GIF中的图像采用LZW算法,这里不多解释了。详细结构如下图:

05 图形控制扩展

图形控制扩展用于说明对于一些图形图像的显示以及渲染的简单控制方式。如图简介:

06 应用程序扩展
应用程序扩展允许使用者对图片进行一些自定义的描述和说明。如图简介:

07 图像结尾
图像结尾用一个固定的字节0x3B来表示。GIF的结束方式相对比较简单。



PS:
推出了图像系列的文章,很多人留言询问如何以16进制的方式查看一张图片,作为一个程序员,我想UE是必不可少的了,就是UltraEdit,不同的图片,用其打开,便可看到相应的十六进制值喽。

对,你没看错,就是它,这个logo。

原文地址:http://blog.51cto.com/7335580/2089675

时间: 2024-10-07 06:14:08

常见图片格式详解(五)-----GIF的相关文章

常见图片格式详解

标明原作者信息 http://www.cnblogs.com/xiangism 做了几年有关图形.图像的工作,对图片格式算是小有经验,在此写成一文章总结下.虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些"理论"讲清楚吧. 常见的图片格式有bmp, jpg(jpeg), png, gif, webp等. 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起.在计算机中, 图像是由一个个像

常见图片格式详解系列(一) ----简介

常见图片格式介绍 信息时代,丰富多彩的世界,我们用图片来感知,来记忆,来存储.多姿多彩的图片格式,你是否了解其中奥妙呢.接下来的系列文章就要带大家详细解析常见图片格式. (一) BMP BMP格式,是windows的一种位图格式,同时也是一种未经过压缩的格式,所以占用的存储空间比较大,而且对于浏览器等网络应用并不支持,不过对于windows而言,可以搞一张bmp的图像来充当背景,相对比较清晰. (二)JPG jpeg格式是一种比较常见的图像格式,是一种经过JPEG算法压缩的图形格式,其占用存储空

常见图片格式详解系列(二)---BMP位图--

BMP BMP是windows的一种图片格式,其组织方式相对简单,一个简单表示bmp文件的头结构 (BITMAPFILEHEAER)+ 一个表示图片信息的结构(BITMAPINFOHEADER)+ 一个表示调色板的结构(可选).剩下的便是存储的每一个像素点对应的R,G,B值. BITMAPFILEHEADER WORD bfType:表示文件类型,该值必须是0x424D,即字符'BM',否则便不是BMP图片.DWORD bfSize:以字节为单位,表示整个图像文件的大小.如需要添加列表可继续从左

常见图片格式详解(三)---JPEG

JPEG简介 JPEG是一种比较成熟的有损的图像压缩格式,经过JPEG压缩,图像质量会有所损失,但是,人眼不容易分辨出来这种差别.jpeg图像在质量和存储空间得到了一个相对平衡的状态.不过jpeg文件在组织方式上略显复杂,详细请向下看. JPEG文件的存储方式 jpeg文件是按照段的格式来组织存储的,每一个文件由多个段组成,每个段代表不同的信息.同时,每个段也有自己唯一的标识符.标识符是由两个字节所组成,格式如0x FF XX,其中XX代表的是不同的类型.例如,SOI(start of imag

常见图片格式详解(四)---png

本篇简单梳理一下关于png格式图片的那些事. 一.简介 PNG图片是由很多个数据块组成的,每一个数据块代表不同的有关于图片的信息.除png头以外,每一个数据块都是按照数据长度+数据标识符+CRC校验码的结构来组织.如下图: 二.主要的PNG数据块 PNG图片的头信息用8个字节来唯一标识图像的类型. "89 50 4E 47 00 DA 1A 0A" 为png文件的标识符 2 在头标识之后,紧跟着的是叫做IHDR的数据段,包含了图像的高度,宽度,位深等相关信息. 3 IDAT是PNG中主

BMP格式详解

BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式.由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源.Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持. 下面以Notepad++为分析工具,结合

多媒体封装格式详解---MP4

MP4文件格式详解--结构概述 http://blog.csdn.net/pirateleo/article/details/7061452 一.基本概念 1. 文件,由许多Box和FullBox组成. 2. Box,每个Box由Header和Data组成. 3. FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags. 4. Header,包含了整个Box的长度size和类型type.当size==0时,代表这是文件中最后一个

Android基础入门教程——8.3.8 Paint API之—— Xfermode与PorterDuff详解(五)

Android基础入门教程--8.3.8 Paint API之-- Xfermode与PorterDuff详解(五) 标签(空格分隔): Android基础入门教程 本节引言: 好的,上一节中,我们又写了一个关于Xfermode图片混排的例子--擦美女衣服的Demo,加上前面的 利用Xfermode来实现圆角或圆形ImageView,相信大家对Xfermode已经不再像以前那么陌生了,或者 说有点熟悉了,嗯,本节我们来写Xfermode的最后一个例子,通过Xfermode的ProterDuff.

ImageMagick之图片裁剪详解

ImageMagick之图片裁剪详解 imagemagick 的 convert 命令通过 crop 参数,可以把一幅大图片分成若干块大小一样的图片,同时也可以在大图上截取一块图片来.命令格式为 convert 原始图片 -crop widthxheight+x+y 目标图片 其中 widthxheight 是目标图片的尺寸,+x+y 是原始图片的坐标,这两组值至少要出现一组,也可以同时存在.另外该命令也可使用 gravity来重新定义坐标系统.关于更多 gravity 的信息,请参考:Imag