图象格式
- 格式:docx
- 大小:33.88 KB
- 文档页数:23
图形文件格式大全一、BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。
这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。
所以,目前BMP在单机上比较流行。
二、GIF格式GIF是英文Graphics Interchange Format(图形交换格式)的缩写。
顾名思义,这种格式是用来交换图片的。
事实上也是如此,上****80年代,美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出了这种GIF图像格式。
GIF格式的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。
最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续的动画,使之成为当时支持2D动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF风光十足。
目前Internet上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式文件。
此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的"从朦胧到清楚"的观赏心理。
目前Internet 上大量采用的彩色动画文件多为这种格式的文件。
但GIF有个小小的缺点,即不能存储超过256色的图像。
尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
数码相机图像格式有哪些想成为一名优秀的摄影师,岂能不知道数码摄影入门知识,不懂数码相机图像格式有哪些?不要一直认为我只会用到几个图像格式,而就觉得这些格式是万能了。
下面是小编为大家精心推荐数码图像的相关知识,希望能够对您有所帮助。
数码图像的文件格式为了能表现逼真的图像效果,使用数码相机拍摄的图片都是位图文件;位图文件的格式多达几十种,不同的格式都有不同的特性,下面我们来介绍一下位图文件的几种常见格式。
1、JPEGJPEG文件格式是Joint Photographic Experts Group(联合图像专家组)的缩写,文件的后缀名是.JPG,这也是我们最常见的一种文件格式,几乎所有的图像软件都可以打开它。
现在,它已经成为印刷品和万维网发布的压缩文件的主要格式。
JPEG格式可以支持16M种颜色,能很好地再现全彩色图像,较适合摄影图像的存储。
由于JPEG格式的压缩算法是采用平衡像素之间的亮度色彩来压缩的,因而更有利于表现带有渐变色彩且没有清晰轮廓的图像。
JPEG文件格式允许用可变压缩的方法,保存8位、24位、32位深度的图像。
JPEG使用了有损压缩格式,这就使它成为迅速显示图像并保存较好分辨率的理想格式。
当进行印刷或在显示器上观察时,JPEG一般可将图像压缩为原大小的十分之一而看不出明显差异。
也正是由于JPEG格式可以进行大幅度的压缩,使得它方便储存、通过网络进行传送,所以得到了广泛的应用。
当使用JPEG格式保存图像时,Photoshop给出了多种保存选项,你可以选择用不同的压缩比例对JPEG文件进行压缩,即压缩率和图像质量都是可选的。
2、TIFFTIFF是Tagged Image File Format(标记图像文件格式)的缩写,文件的后缀名是.TIF,这是现阶段印刷行业使用最广泛的文件格式。
这种文件格式是由Aldus和Microsoft公司为存储黑白图像、灰度图像和彩色图像而定义的存储格式,现在己经成为出版多媒体CD-ROM中的一个重要文件格式。
文件格式是指计算机程序需要打开或执行的文件,不同的程序都会有相应的文件格式打开或保存。
一般来说,文件格式由于种类繁多而且用途不同,除了文件本身的名字以外它们每个都会有一个后缀名来表示该文件的类型、用途。
图形文件格式BMP:是一种与硬件设备无关的图像文件格式,使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,其文件所占用的空间很大。
BMP文件的图像深度可选lbit、4bit、8bit及24bit。
由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
JPG:静态图象专家组制订的静态图象压缩标准,全称JPEG。
它具有很高的压缩比,虽然其压缩方式是属于有损压缩,但图像质量却非常高,在100%质量的压缩情况下肉眼几乎看不出来有什么损耗,并且其文件容量却非常小。
如一张几M的BMP图像压成JPG后只有几十到及百K的大小。
因此,在网络图像传输、视频序列帧中使用非常广泛。
TGA:TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为“.tga”,已被国际上的图形、图像工业所接受。
TGA的结构比较简单,属于一种图形、图像数据的通用格式,它可存储ALPHA通道,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式。
一般我们在生成序列序列帧时就采用这种格式,如3DSMAX生成动画用于影视合成时就此格式生成序列帧。
TIF:TIFF格式(Tag Image File Format)是Macintosh上广泛使用的图形格式,具有图形格式复杂、存贮信息多的特点。
3DS、3DS MAX中的大量贴图就是TIFF格式的。
TIFF最大色深为32bit,可采用LZW无损压缩方案存储。
该格式(文件扩展名为 .tif 或 .tiff)可以制作质量非常高的图像,由于它支持具有alpha 通道的CMYK、RGB、Lab、索引颜色和灰度图像以及无alpha 通道的位图模式图像因而经常用于出版印刷。
PHOTOSHOP保存图片的几种格式详解1 PSD:Photoshop 的自身格式,能支持 Photoshop 的全部信息:α通道,专色通道,多图层,路径和剪贴路径,它还支持 Photoshop 使用的任何颜色深度和图象模式。
PSD格式是采用RLE的无损压缩。
在 Photoshop 中存储和打开此格式也是较快速的。
2 TIFF:TIFF 支持位图、灰度模式、索引模式、RGB、CMYK、和Lab等图象模式。
TIFF支持RLE。
也支持LZW压缩模式。
它是跨平台的图象格式,既可在Windows,又可在Macintosh中打开和存储。
它被页面布局程序广泛地接受,常用于出版和印刷业中。
3 EPS:EPS是 Photoshop 用 PostScript语言开发的一个图象格式,它既能包含栅格图,又能包含矢量图。
它还支持剪贴路径,并在页面布局应用程序中,成为透明图象。
它不支持α通道。
Photoshop 中保存的EPS文件,只包含栅格图。
EPS 的编码:ASCII 在打印时不易出问题二进位制在打印时易发生错误JPEG: 在矢量图应用程序中保存的EPS文件,在 Photoshop 中可以用“置入”命令置入。
置入后,可调节他的大小而保持它的清晰度。
4 PCX:它是最早得到广泛应用的文件格式。
它支持位图、索引模式、灰度模式和真彩色的 RGB 模式,但不支持通道和 CMYK 模式。
它也和 PSD 一样用 RLE压缩,但它的文件较 PSD 要大些。
5 PDF:它是 Adobe Acrobat 电子阅读器所使用的格式,可以在很多操作系统中阅读它的文件。
它与 web 文件一样有超文本链接,阅读极其方便。
但它们文件质量要高于 web 文件。
如在 Photoshop 中置入的PDF文件,只能置入首页。
用“文件/自动/多页面PDF到PSD”命令,可以图层的形式置入PDF。
它以Photoshop PDF格式保存时,可用位图、灰度模式、索引模式、RGB、CMYK 以及Lab模式保存。
一、 BMP 格式BMP 是英文 Bitmap(位图)的简写,它是Windows 操作系统中的标准图像文件格式,能够被多种 Windows 应用程序所支持。
跟着 Windows 操作系统的流行与丰富的Windows 应用程序的开发, BMP位图格式理所自然地被宽泛应用。
这类格式的特色是包含的图像信息较丰富,几乎不进行压缩,但由此致使了它与生俱生来的弊端--占用磁盘空间过大。
所以,当前BMP 在单机上比较流行。
二、 GIF 格式GIF 是英文 Graphics Interchange Format(图形互换格式)的缩写。
顾名思义,这类格式是用来互换图片的。
事实上也是这样,上世纪80 年月,美国一家有名的在线信息服务机构CompuServe 针对当时网络传输带宽的限制,开发出了这类GIF 图像格式。
GIF 格式的特色是压缩比高,磁盘空间占用较少,所以这类图像格式快速获得了宽泛的应用。
最初的 GIF 不过简单地用来储存单幅静止图像(称为 GIF87a),此后跟着技术发展,能够同时储存若干幅静止图象从而形成连续的动画,使之成为当时支持 2D 动画为数不多的格式之一(称为 GIF89a ),而在 GIF89a 图像中可指定透明地区,使图像拥有非同一般的显示成效,这更使 GIF 风光实足。
当前 Internet 上大批采纳的彩色动画文件多为这类格式的文件,也称为 GIF89a 格式文件。
别的,考虑到网络传输中的实质状况,GIF 图像格式还增添了渐显方式,也就是说,在图像传输过程中,用户能够先看到图像的大概轮廓,而后跟着传输过程的持续而逐渐看清图像中的细节部分,从而适应了用户的" 从模糊到清楚 " 的赏析心理。
当前Internet 上大批采纳的彩色动画文件多为这类格式的文件。
但 GIF 有个小小的弊端,即不可以储存超出 256 色的图像。
只管这样,这类格式仍在网络上大行其道应用,这和 GIF 图像文件短小、下载速度快、可用很多拥有相同大小的图像文件构成动画等优势是分不开的。
常用文件格式简介(转载)图片文件格式简介一、BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。
这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。
所以,目前BMP在单机上比较流行。
二、GIF格式GIF是英文Graphics Interchange Format(图形交换格式)的缩写。
顾名思义,这种格式是用来交换图片的。
事实上也是如此,上世纪80年代,美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出了这种GIF图像格式。
GIF格式的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。
最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续的动画,使之成为当时支持2D动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF风光十足。
目前Internet上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式文件。
此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的"从朦胧到清楚"的观赏心理。
目前Internet上大量采用的彩色动画文件多为这种格式的文件。
但GIF有个小小的缺点,即不能存储超过256色的图像。
尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
Gif,png,jpg,webp⼏种图⽚格式整理GIF 意为Graphics Interchange format(图形交换格式),GIF图⽚的扩展名是gif。
现在所有的图形浏览器都⽀持GIF格式,⽽且有的图形浏览器只熟悉GIF格式。
GIF是⼀种索引颜⾊格式,在颜⾊数很少的情况下,产⽣的⽂件极⼩,它的优点主要有:1.GIF格式⽀持背景透明。
GIF图⽚假如背景⾊设置为透明,它将与浏览器背景相结合,⽣成⾮矩形的图⽚。
2.GIF格式⽀持动画。
在Flash动画出现之前,GIF动画可以说是⽹页中唯⼀的动画形式。
GIF格式可以将单帧的图象组合起来,然后轮流播放每⼀帧⽽成为动画。
虽然并不是所有的图形浏览器都⽀持GIF动画,但是最新的图形浏览器都已经⽀持GIF动画。
3.GIF格式⽀持图形渐进。
渐进是指图⽚渐渐显⽰在屏幕上,渐进图⽚将⽐⾮渐进图⽚更快地出现在屏幕上,可以让访问者更快地知道图⽚的概貌。
4.GIF格式⽀持⽆损压缩。
⽆损压缩是不损失图⽚细节⽽压缩图⽚的有效⽅法,由于GIF格式采⽤⽆损压缩,所以它更适合于线条、图标和图纸。
5.⽔平扫描Gif是使⽤了⼀种叫作LZW的算法进⾏压缩的,当压缩gif的过程中,像素是由上到下⽔平压缩的,这也意味着同等条件下,横向的gif图⽚⽐竖向的gif图⽚更加⼩。
例如500*10的图⽚⽐10*500的图⽚更加⼩GIF格式的缺点同样相当明显。
索引颜⾊是历史遗留的产物,在DOS下的⽼游戏⼏乎⽆⼀例外的采⽤索引颜⾊,这种格式本来早就应该淘汰了。
但是由于带宽的限制,GIF从DOS时代红到了Internet时代。
GIF这种索引颜⾊格式最⼤的缺点就是它只有256种颜⾊,这对于照⽚质量的图⽚是显然不够的。
JPEG 代表Joint Photograhic Experts Group(联合图像专家组),这种格式经常写成JPG,JPG图⽚的扩展名为jpg。
JPG最主要的优点是能⽀持上百万种颜⾊,从⽽可以⽤来表现照⽚。
图形文件格式大全一、BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。
这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。
所以,目前BMP在单机上比较流行。
二、GIF格式GIF是英文Graphics Interchange Format(图形交换格式)的缩写。
顾名思义,这种格式是用来交换图片的。
事实上也是如此,上****80年代,美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出了这种GIF图像格式。
GIF格式的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。
最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续的动画,使之成为当时支持2D 动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF风光十足。
目前Internet上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式文件。
此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的"从朦胧到清楚"的观赏心理。
目前Internet上大量采用的彩色动画文件多为这种格式的文件。
但GIF有个小小的缺点,即不能存储超过256色的图像。
尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
PHOTOSHOP保存图片的几种格式详解1.PSD: Photoshop 的自身格式能支持Photoshop 的全部信息α的任何颜色深度和图象模式。
PSD格式是采用RLE的无损压缩。
在Photoshop 中存储和打开此格式也是较快速的。
2.TIFF: TIFF 支持位图、灰度模式、索引模式、RGB、CMYK、和Lab等图象模式。
TIFF支持RLE。
也支持LZW压缩模式。
它是跨平台的图象格式既可在Windows又可在Macintosh中打开和存储。
它被页面布局程序广泛地接受常用于出版和印刷业中。
3.EPS: EPS是Photoshop 用PostScript语言开发的一个图象格式它既能包含栅格图又能包含矢量图。
它还支持剪贴路径并在页面布局应用程序中成为透明图象。
它不支持α通道。
Photoshop 中保存的EPS文件只包含栅格图。
EPS 的编码ASCII 在打印时不易出问题二进位制在打印时易发生错误4. PCX: 它是最早得到广泛应用的文件格式。
它支持位图、索引模式、灰度模式和真彩色的RGB 模式但不支持通道和CMYK 模式。
它也和PSD 一样用RLE压缩但它的文件较PSD 要大些。
5.PDF: 它是Adobe Acrobat 电子阅读器所使用的格式可以在很多操作系统中阅读它的文件。
它与web 文件一样有超文本链接阅读极其方便。
但它们文件质量要高于web 文件。
如在Photoshop 中置入的PDF文件只能置入首页。
用“文件/自动/多页面PDF到PSD” 命令可以图层的形式置入PDF。
它以Photoshop PDF格式保存时可用位图、灰度模式、索引模式、RGB、CMYK以及Lab模式保存。
但不支持α通道。
6.GIF: 它是目前最重要的图象格式之一它之所以重要是因为它在web 上的广泛应用。
它是索引模式最多也只有256 种颜色信息量小在web 上图象下载较快。
它因信息量小而制作的动画在web 上受到极大的欢迎。
BMP文件格式BMP文件格式是Microsoft Windows下最常见的图像文件格式之一,它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大;BMP 文件的图像深度可选lbit、4bit、8bit及24bit;BMP文件存储数据时,图像的像素值在文件中的存放顺序为从左到右,从下到上,也就是说,在BMP文件中首先存放的是图像的最后一行像素,最后才存储图像的第一行像素,但对与同一行的像素,则是按照先左边后右边的的顺序存储的;另外一个需要关注的细节是:文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为4的倍数,则正常存储,否则,需要在后端补0,凑足4的倍数;由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像都支持BMP图像格式;典型的BMP文件由四部分组成:1、位图头文件数据结构主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;2、信息数据结构包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜色数等信息;3、包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板,但如果图像为真彩色,既图像的每个像素用24个比特来表示,文件中就没有这一块信息,也就不需要操作调色板;4、位图数据记录了位图的每一个像素值或该对应像素的颜色表的索引值,图像记录顺序是在扫描行内是从左到右, 扫描行之间是从下到上;这种格式我们又称为Bottom_Up位图,当然与之相对的还有Up_Down形式的位图,它的记录顺序是从上到下的,对于这种形式的位图,也不存在压缩形式;BMP文件结构位图文件bitmap file, BMP格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式; 以后的BMP格式与显示设备无关,因此把这种BMP格式称为设备无关位图Device Independentbit Bitmap , DIB格式, Windows能够在任何类型的显示设备上显示BMP位图;BMP位图默认的文件扩展名是bmp;1、文件结构位图文件可看成由4个部分组成:位图文件头Bitmap-File、位图信息头Bitmap-Information Header、彩色表Color Table和定义位图的字节阵列,它们的名称和符号如下表1所示:2、位图文件结构可综合在下表中:3、结构详解1位图文件头:它包含有关于文件类型、文件大小和存放位置等信息,在Windows 以上版本的位图文件中用BITMSPFILEHEADER结构体来定义;位图文件头包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段;BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息;其结构定义如下:typedef struct tagBITMAPFILEHEADER{WORD bfType; mp格式支持32位色DWORD biCompression; // 位图压缩类型,必须是0不压缩,// 1BI_RLE8压缩类型或2BI_RLE4压缩类型之一DWORD biSizeImage; // 位图的大小,以字节为单位LONG biXPelsPerMeter; // 位图水平分辨率,每米像素数LONG biYPelsPerMeter; // 位图垂直分辨率,每米像素数DWORD biClrUsed; // 位图实际使用的颜色表中的颜色数DWORD biClrImportant; // 位图显示过程中重要的颜色数} BITMAPINFOHEADER; //该结构占据40个字节它由位图信息头和彩色表组成,前者用BITMAPINFOHEADER结构体定义,后者用RGBQUAD结构体定义;1彩色表的定位:应用程序进行彩色表的定位时,可使用存储在biSize成员中的信息来查找在BITMAPINFO结构体中的彩色表;2biBitCount:biBitCount=1表示位图最多有两种颜色,黑色和白色;图像数据阵列中的每一位表示一个pixel:biBiCount=4表示位图最多有16种颜色;每个像素用场bit表示,交用这4bit 作为彩色表的表项来查找该像素的颜色;3ClrUsed:BITMAPINFOHEADER结构中的成员ClrUsed指定实际使用的颜色数目;48bit/pixel的图像数据压缩:BI_RLE8 8bit/pixel的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用;编码方式由此及彼个字节组成,第一个字节指定使用相同颜色的像素数目,第二个字节指字使用的颜色索引;此外,这个字节对中的第一个字节可设置为0,联合使用第二个字节的值表示:●第二个字节的值为0 行的结束●第二个字节的值为1 图像结束●第二个字节的值为2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量绝对方式第一个字节设置为0,而第二个字节设置为03h~0FFh之间的一个值;在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个像素的颜色索引;5每个像素为4位的图像数据压缩:BI_RLE4 每个像素为4位的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一幅图中的任何地方使用;编码方式由2个字节组成,第一个字节指定像素数目,第二个字节包含两种颜色索引;绝对方式这个字节对中的第一个字节设置为0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低4位中,一个颜色索引对应一个像素;BI_RLE4也同样联合使用第二个字节中的值表示:●第二个字节的值为0 行的结束●第二个字节的值为1 图像结束●第二个字节的值为2 其后的两个字节表示下一个像素从当前开始的水平和垂直位置的偏移量3彩色表:包含的元素与位图所具有的颜色数相同,像素的颜色用RGBQUAD结构来定义;彩色表中的颜色按颜色的重要性排序,这可辅助显示驱动程序为不能显示足够多颜色数的显示设备显示彩色图像;颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色;RGBQUAD结构的定义如下:typedef struct tagRGBQUAD {BYTE rgbBlue; // 蓝色的亮度值范围为0-255BYTE rgbGreen; // 绿色的亮度值范围为0-255BYTE rgbRed; // 红色的亮度值范围为0-255BYTE rgbReserved; // 保留,必须为0} RGBQUAD;彩色表/调色板color table是单色、16色和256色图像文件所特有的,相对应的调色板大小是2、16和256,调色板以4字节为单位,每4个字节存放一个颜色值,图像的数据是指向调色板的索引;可以将调色板想象成一个数组,每个数组元素的大小为4字节,假设有一256色的BMP图像的调色板数据为:调色板0=黑、调色板1=白、调色板2=红、调色板3=蓝…调色板255=黄图像数据01 00 02 FF表示调用调色板1、调色板0、调色板2和调色板255中的数据来显示图像颜色;每个调色板的大小为4字节,按蓝、绿、红存储一个颜色值;4位图数据:紧跟在彩色表之后的是图像数据字节阵列;图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度;位图的一个像素值所占的字节数:当biBitCount=1时,8个像素占1个字节;当biBitCount=4时,2个像素占1个字节;当biBitCount=8 时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节,此时图像为真彩色图像;当图像不是为真彩色时,图像文件中包含颜色表,位图的数据表示对应像素点在颜色表中相应的索引值,当为真彩色时,每一个像素用三个字节表示图像相应像素点彩色值,每个字节分别对应R、G、B分量的值,这时候图像文件中没有颜色表;上面我已经讲过了,Windows规定图像文件中一个扫描行所占的字节数必须是4的倍数即以字为单位,不足的以0填充,图像文件中一个扫描行所占的字节数计算方法:DataSizePerLine = biWidth biBitCount + 31 / 8;// 一个扫描行所占的字节数位图数据的大小按下式计算不压缩情况下:DataSize = DataSizePerLine biHeight;。
3.1 BMP文件结构 BMP图象文件是windows所采用的标准图象文件格式,几乎所有windows上的应用软件都支持这种图象文件,在windows下能够很容易地把其他的图像文件转化为bmp图像文件格式。 3.1.1 BMP文件组成
BMP文件由文件头、位图信息头、颜色信息和图象数据四部分组成。文件头主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;位图信息头包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜色数等信息。颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板,但如果图像为真彩色,既图像的每个像素用24个比特来表示,文件中就没有这一块信息,也就不需要操作调色板。文件中的数据块表示图像的相应的像素值。 3.1.2 BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。其结构定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType; // 位图文件的类型,必须为“BM” DWORD bfSize; // 位图文件的大小,以字节为单位 WORD bfReserved1; // 位图文件保留字,必须为0 WORD bfReserved2; // 位图文件保留字,必须为0 DWORD bfOffBits; // 位图数据的起始位置,以相对于位图文件头的偏移量表示,以字节为单位 } BITMAPFILEHEADER;该结构占据14个字节。 3.1.3位图信息头 BMP位图信息头数据用于说明位图的尺寸等信息。其结构如下: typedef struct tagBITMAPINFOHEADER{ DWORD biSize; // 本结构所占用字节数 LONG biWidth; // 位图的宽度,以像素为单位 LONG biHeight; // 位图的高度,以像素为单位 WORD biPlanes; // 目标设备的平面数不清,必须为1 WORD biBitCount // 每个像素所需的位数,必须是1(双色),4(16色),8(256色)或24(真彩色)之一 DWORD biCompression; // 位图压缩类型,必须是0(不压缩),1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一 DWORD biSizeImage; // 位图的大小,以字节为单位 LONG biXPelsPerMeter; // 位图水平分辨率,每米像素数 LONG biYPelsPerMeter; // 位图垂直分辨率,每米像素数 DWORD biClrUsed; // 位图实际使用的颜色表中的颜色数 DWORD biClrImportant; // 位图显示过程中重要的颜色数 } BITMAPINFOHEADER;该结构占据40个字节。 注意:对于BMP文件格式,在处理单色图像和真彩色图像的时候,无论图象数据多么庞大,都不对图象数据进行任何压缩处理,一般情况下,如果位图采用压缩格式,那么16色图像采用RLE4压缩算法,256色图像采用RLE8压缩算法。 3.1.4颜色表 颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下: typedef struct tagRGBQUAD { BYTErgbBlue;// 蓝色的亮度(值范围为0-255) BYTE rgbGreen; // 绿色的亮度(值范围为0-255) BYTErgbRed; // 红色的亮度(值范围为0-255) BYTE rgbReserved;// 保留,必须为0 } RGBQUAD; 颜色表中RGBQUAD结构数据的个数由BITMAPINFOHEADER中的biBitCount项来确定,当biBitCount=1,4,8时,分别有2,16,256个颜色表项,当biBitCount=24时,图像为真彩色,图像中每个像素的颜色用三个字节表示,分别对应R、G、B值,图像文件没有颜色表项。位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下: typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; // 位图信息头 RGBQUAD bmiColors[1]; // 颜色表 } BITMAPINFO; 注意:RGBQUAD数据结构中,增加了一个保留字段rgbReserved,它不代表任何颜色,必须取固定的值为“0”,同时,RGBQUAD结构中定义的颜色值中,红色、绿色和蓝色的排列顺序与一般真彩色图像文件的颜色数据排列顺序恰好相反,既:若某个位图中的一个像素点的颜色的描述为“00,00,ff,00”,则表示该点为红色,而不是蓝色。 3.1.5位图数据 位图数据记录了位图的每一个像素值或该对应像素的颜色表的索引值,图像记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。这种格式我们又称为Bottom_Up位图,当然与之相对的还有Up_Down形式的位图,它的记录顺序是从上到下的,对于这种形式的位图,也不存在压缩形式。位图的一个像素值所占的字节数:当biBitCount=1时,8个像素占1个字节;当biBitCount=4时,2个像素占1个字节;当biBitCount=8时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节,此时图像为真彩色图像。当图像不是为真彩色时,图像文件中包含颜色表,位图的数据表示对应像素点在颜色表中相应的索引值,当为真彩色时,每一个像素用三个字节表示图像相应像素点彩色值,每个字节分别对应R、G、B分量的值,这时候图像文件中没有颜色表。上面我已经讲过了,Windows规定图像文件中一个扫描行所占的字节数必须是4的倍数(即以字为单位),不足的以0填充,图像文件中一个扫描行所占的字节数计算方法: DataSizePerLine= (biWidth* biBitCount+31)/8;// 一个扫描行所占的字节数 位图数据的大小按下式计算(不压缩情况下): DataSize= DataSizePerLine* biHeight。 上述是BMP文件格式的说明,搞清楚了以上的结构,就可以正确的操作图像文件,对它进行读或写操作了。 3.2 GIF图像文件格式 GIF图象格式的全称为Graphics Interchange Format,从这个名字可以看出,这种图像格式主要是为了通过网络传输图像而设计的。从颜色的深度和图像大小来讲,它类似于PCX;从结构来讲它更类似于TIFF。GIF文件不支持24位真彩色图像,最多只能存储256色的图像或灰度图像;GIF格式文件也无法存储CMY和HIS模型的图像数据。 3.2.1 GIF文件结构 GIF有五个主要部分以固定顺序出现,所有部分由一个或多个快(block)组成。每个块由第一个字节中的标识码或特征码标识。 3.2.1.1文件头信息 typef struct GIFHEADER: { BYTEbySignature; //该字段占六个字节,为了用于指明图像为GIF格式,前三个字符必须为“GIF”, BYTE byversion; //版本号码 }GIFHEADER 3.2.1.2屏幕描述块 逻辑屏幕(logical screen)是一个虚拟屏幕(virtual screen),通过逻辑屏幕我们可以知道如何处理图像的显示。例如,如果图像的长宽值大于逻辑屏幕的长宽值,则我们可讲图像做适当的缩小,以使图像能够在逻辑中完全显示,或采用滚动的方式,仅显示部分的图像。 Typedef struct gifscrdesc { WORD wWidth; //逻辑屏幕的宽度 WORD wDepth; //逻辑屏幕的高度 Struct globalflag //全域性数据 { BYTE Palbits; // 判断调色板数据的大小 BYTE SortFlag; //判断调色板中的RGB颜色值是否经过排序 BYTE ColorRes; //计算原始图像的色彩分辨率 BYTE GlobalPal;// 此域判断是否存有全域性调色板,若值为1表示有 }GlobalFlag; BYTE byBackgroud;//逻辑屏幕的背景颜色 BYTE byAspect;//逻辑屏幕的象素常宽比例 }GIFSCRDESC; 3.2.1.3全域调色板数据 全域调色般的大小是由GlobalFlag.PalBits决定,其最大长度为768(256×3)字节。原则上再GIF图像文件中的每张图像都有其专属的区域调色板,倘若某张图像没有定义齐全域调色板,就必须以去域调色板替代。区域调色板的数据(RGB)储存方式如下: RGBRGB„„RGB 3.2.1.4图像描述块 由于GIF图像文件中可能有多个图像描述块以及扩充块,而且这些块也没有一定的存放顺序,因为GIF用一个字节的识别码(Image Separator)来判断是否为图像描述块,值为02×C其他的图像相关信息则如下所示: typedef struct gifimage { WORD wLeft; //图像相对于逻辑屏幕左上角的X坐标,以象素为单位。 WORD wTop; //图像相对于逻辑屏幕左上角的Y坐标,以象素为单位。 WORD wWidth;//图像的宽度,以象素为单位 WORD wDepth;//图像的高度,以象素为单位 Struct localflag//区域性资料 { BYTE Palbits; // 判断调色板数据的大小 BYTE Reserved;//保留未用 BYTE SortFlag; //判断调色板中的RGB颜色值是否经过排序 BYTE Interlace;//根据此域可判断图像数据是否交错的方式储存。 BYTE LocalPal; // 此域判断是否存有区域性调色板,若值为1表示有 }LocalFlag; }GIFIMAGE; 3.2.1.5区域调色板数据 区域调色般的大小是由LocalFlag.PalBits决定,其最大长度为768字节。原则上在GIF图像文件中的没张图像都有其专属的区域调色板,倘若某张图像没有定义其区域调色板,就