各种图像格式的数据结构说明
RAW图像格式扩展名是RAW。RAW是一种无损压缩格式,它的数据是没有经过相机处理的原文件,因此它的大小要比tiff略小。所以,当上传到电脑之后,要用图像软件的Twain界面直接导入成TIFF格式才能处理。BMP图像格式BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。BMP图像,即通常所说的位图(Bitmap),是Windows系统中最为常见的图像格式。Windows3.0以前的版本只支持与设备相关位图DDB(Device DependentBitmap)。DDB是一种内部位图格式,它显示的图像依计算机显示系统的设置不同而不同,因此一般不存储为文件,与通常所说的BMP图像不同。在Windows.h中,结构体BITMAP定义了DDB位图的类型、宽度、高度、颜色格式和像素位值等,代码如下:typedefstruct tagBITMAP{int bmType; //位图类型,必须设为0int bmWidth; //位图宽度int bmHeight; //位图高度int bmWidthBytes; //位图中每一扫描行中的字节数BYTE bmPlanes; //颜色层数BYTE bmBitsPixel; //每一像素所占的位数void FAR* bmBits; //存放像素值内存块的地址}BITMAP;DDB中不包括颜色信息,显示时是以系统的调色板为基础进行像素的颜色映射的。Windows只能保证系统调色板的前20种颜色稳定不变,所以DDB只能保证正确显示少于20色的位图。WindowsSDK提供标准的DDB位图操作函数;MFC中定义了CBitmap类来说明DDB位图,其中封装了与DDB位图操作相关的数据结构和函数。Windows 3.1以上版本提供了对设备无关位图DIB(DeviceIndependent Bitmap)的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。相对于DDB而言,DIB是一种外部位图格式,经常存储为常见的以BMP为后缀的位图文件(有时也以DIB为后缀)。因此,通常所说的BMP图像,即是DIB位图。BMP位图文件包括4部分,即位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据,BMP位图文件的结构如图1.1所示。位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据图1.1 BMP位图文件的结构下面介绍BMP文件头、BMP位图信息头、颜色表这3个结构体在Windows.h中的定义。1. BMP文件头BMP文件头含有BMP文件的类型、文件的大小、位图文件的保留字、位图数据距文件头的偏移量等信息。定义如下:typedef struct tagBITMAPFILEHEADER{UINT bfType; //位图文件的类型,必须为BMDWORD bfSize; //位图文件的大小,以字节为单位UINT bfReserved1; //位图文件保留字,必须为0UINT bfReserved2; //位图文件保留字,必须为0DWORD bfOffBits; //位图数据距文件头的偏移量,以字节为单位} BITMAPFILEHEADER;2. BMP位图信息头BMP位图信息头用于说明位图的尺寸等信息,定义如下:typedef struct tagBIMAPINFOHEADER{DWORD biSize; //本结构所占用字节数LONG biWidth; //位图的宽度,以像素为单位LONG biHeight; //位图的高度,以像素为单位WORD biPlanes; //目标设备的级别,必须为1WORD biBitCount; //每个像素所需的位数,必须是1(双色)、//4(16色)、8(256色)或24(真彩色)之一DWORD biCompression; //位图压缩类型,必须是0(不压缩)、//1(BI_RLE8压缩类型)或2(BI_RLE压缩类型)之一DWORD biSizeImage; //位图的大小,以字节为单位LONG biXPelsPerMeter; //位图水平分辨率,每米像素数LONG biYPelsPerMeter; //位图垂直分辨率,每米像素数DWORD biClrUsed; //位图实际使用的颜色表中的颜色数DWORD biClrImportant; //位图显示过程中重要的颜色数} BITMAPINFOHEADER;3. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,且定义一种颜色,定义如下:typedef struct tagRGBQUAD{BYTE rgbBlue; //蓝色的亮度(值范围为0~255)BYTE rgbGreen; //绿色的亮度(值范围为0~255)BYTE rgbRed; //红色的亮度(值范围为0~255)BYTE rgbReserved; //保留,必须为0} RGBQUAD;位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO{BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[i];} BITMAPINFO;颜色表中RGBQUAD结构数据的个数由biBitCount来确定,当biBitCount=1、4、8时,分别有2、16、256个表项;当biBitCount=24时,没有颜色表项。位图数据记录了位图的每一个像素值,记录顺序是在扫描行内从左到右、扫描行之间从下到上。位图的一个像素值所占的字节数如下:l 当biBitCount=1时,8个像素占1个字节。l 当biBitCount=4时,2个像素占1个字节。l 当biBitCount=8时,1个像素占1个字节。l 当biBitCount=24时,1个像素占3个字节。Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,一个扫描行所占的字节数计算方法如下:DataSizePerLine=(biWidth×biBitCount+31)/8这是本设计中的一个关键点,无论对图像进行何种变换,都要进行扫描行的4字节对齐。除了上述的WindowsBMP以外,还有一种与其结构相似,但不完全相同的另一种BMP图像,即OS/2采用的BMP。其与WindowsBMP的主要区别是位图信息结构(信息头结构和颜色表结构)不同。而它们的图像位数据的存储方式是完全一样的。本设计只讨论Windows系统下的BMP图像,故对OS/2使用的BMP不进行详细分析。PCX图像格式PCX这种图像文件的形成是有一个发展过程的。最先的PCX雏形是出现在ZSOFT公司推出的名叫PCPAINBRUSH的用于绘画的商业软件包中。以后, 微软公司将其移植到Windows环境中,成为Windows系统中一个子功能。先在 微软的Windows3.1中广泛应用,随着Windows的流行、升级,加之其强大的图像处理能力,使PCX同GIF、TIFF、BMP图像文件格式一起,被越来越多的图形图像软件工具所支持,也越来越得到人们的重视。PCX是最早支持彩色图像的一种文件格式,现在最高可以支持256种彩色,如图4-25所示,显示256色的彩色图像。PCX设计者很有眼光地超前引入了彩色图像文件格式,使之成为现在非常流行的图像文件格式。PCX图像文件由文件头和实际图像数据构成。文件头由128字节组成,描述版本信息和图像显示设备的横向、纵向分辨率,以及调色板等信息:在实际图像数据中,表示图像数据类型和彩色类型。PCX图像文件中的数据都是用PCXREL技术压缩后的图像数据。PCX是PC机画笔的图像文件格式。PCX的图像深度可选为l、4、8bit。由于这种文件格式出现较早,它不支持真彩色。PCX文件采用RLE行程编码,文件体中存放的是压缩后的图像数据。因此,将采集到的图像数据写成PCX文件格式时,要对其进行RLE编码:而读取一个PCX文件时首先要对其进行RLE解码,才能进一步显示和处理。TIFF图像格式TIFF (TaglmageFileFormat)图像文件是由Aldus和Microsoft公司为桌上出版系统研制开发的一种较为通用的图像文件格式。TIFF格式灵活易变,它又定义了四类不同的格式:TIFF-B适用于二值图像:TIFF-G适用于黑白灰度图像;TIFF-P适用于带调色板的彩色图像:TIFF-R适用于RGB真彩图像。TIFF支持多种编码方法,其中包括RGB无压缩、RLE压缩及JPEG压缩等。TIFF是现存图像文件格式中最复杂的一种,它具有扩展性、方便性、可改性,可以提供给IBMPC等环境中运行、图像编辑程序。TIFF图像文件由三个数据结构组成,分别为文件头、一个或多个称为IFD的包含标记指针的目录以及数据本身。TIFF图像文件中的第一个数据结构称为图像文件头或IFH。这个结构是一个TIFF文件中唯一的、有固定位置的部分;IFD图像文件目录是一个字节长度可变的信息块,Tag标记是TIFF文件的核心部分,在图像文件目录中定义了要用的所有图像参数,目录中的每一目录条目就包含图像的一个参数。GIF图像格式GIF(Graphics Interchange Format)的原义是"图像互换格式",是CompuServe公司在1987年开发的图像文件格式。GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左右,它不属于任何应用程序。目前几乎所有相关软件都支持它,公共领域有大量的软件在使用GIF图像文件。GIF图像文件的数据是经过压缩的,而且是采用了可变长度等压缩算法。所以GIF的图像深度从lbit到8bit,也即GIF最多支持256种色彩的图像。GIF格式的另一个特点是其在一个GIF文件中可以存多幅彩色图像,如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可构成一种最简单的动画。GIF解码较快,因为采用隔行存放的GIF图像,在边解码边显示的时候可分成四遍扫描。第一遍扫描虽然只显示了整个图像的八分之一,第二遍的扫描后也只显示了1/4,但这已经把整幅图像的概貌显示出来了。在显示GIF图像时,隔行存放的图像会给您感觉到它的显示速度似乎要比其他图像快一些,这是隔行存放的优点。GIF格式的文件是8为图像文件,最多为256色,不支持Alpha通道。gif格式产生的文件较小,常用于网络传输,做网页上见到的图片大多是gif和jpeg格式的。gif格式与jpeg格式相比,其优点在于gif格式的文件可以保持动画效果。JPEG格式JPEG是Joint Photographic ExpertsGroup(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把1.37Mb的BMP位图文件压缩至20.3KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。其中0级压缩比最高,图像品质最差。即使采用细节几乎无损的10级质量保存时,压缩比也可达 5:1。以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。JPEG2000作为JPEG的升级版,其压缩率比JPEG高约30%左右,同时支持有损和无损压缩。JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示。此外,JPEG2000还支持所谓的"感兴趣区域"特性,可以任意指定影像上感兴趣区域的压缩质量,还可以选择指定的部分先解压缩。JPEG2000和JPEG相比优势明显,且向下兼容,因此可取代传统的JPEG格式。JPEG2000即可应用于传统的JPEG市场,如扫描仪、数码相机等,又可应用于新兴领域,如网路传输、无线通讯等等。JPEG的全称是“联合图片专家组(Joint Photographic ExpertsGroup)”,是由该专家组制订的用于连续色调(包括灰度和彩色)静止图像的压缩编码标准。JPEG标准的压缩编码算法是“多灰度静止图像的数字压缩编码”。JPEG标准包括3部分,即编码器、译码器和交换格式。l 编码器将原始图像的编码压缩成压缩数据。l 译码器将压缩的图像数据还原成原始图像数据。l 图像压缩数据以一定的交换格式存储,格式中包括编码过程中采用的码表等。JPEG标准包括以下4种运行模式。l 基本系统(Baseline System):基于离散余弦变换DCT(DiscreteCosine Transform)进行从左到右、从上到下的顺序扫描编码和重建图像,实现信息有丢失的图像压缩,但重建图像的质量要达到难以观察出图像损伤的要求。它采用8×8像素自适应DCT算法量化以及哈夫曼(Huffman)型的熵编码器。l 扩展系统(Extended System):选用基于离散余弦变换DCT的递增工作方式,编码过程采用具有自适应能力的算术编码。l 无失真的预测编码:采用帧内预测编码及哈夫曼编码(或算术编码),可保证重建图像与原始图像完全一样(即均方误差为零)。l 分层编码:以多种分辨率对图像进行编码,按不同的应用要求可以获得不同分辨率或质量的图像。JPEG标准定义了两种基本的压缩算法,即基于空间线性预测技术差分脉冲码调制DPCM(Differential PulseCode Modulation)的无失真压缩算法和基于离散余弦DCT(Discrete CosineTransform)的有失真压缩算法。JPEG压缩标准的压缩比是通过量化因子(Q因子)来控制的。Q因子用来确定原始图像的采样精度,并产生一个JPEG量化矩阵,即:式中QM[i,j]为量化矩阵,Q是量化因子,V[i,j]是图像缺省清晰度表。量化矩阵用来量化DCT变换产生的频率系数,量化后的系数值减少,0值的数目大大增加。Q因子越大,量化后的0值越多,压缩比越大,因此Q因子决定着JPEG的压缩比。JPEG的无失真压缩率为4:1,有失真压缩率为10:1~100:1。在压缩率小于40:1时,人眼基本上分辨不出图像的效果变化,可认为是“主观无失真压缩”。JPEG标准较复杂,但有许多公司和组织提供大量的操作JPEG的开放源码可以利用。本设计就使用了IndependentJPEG Group的Thomas G. Lane编写的JPEGLIB2。TGA格式TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为".tga",已被国际上的图形、图像工业所接受。TGA的结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式。TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是缕空的图像文件时,TGA可就派上用场了!TGA格式支持压缩,使用不失真的压缩算法。TGA格式是Truevision公司设计并负责解释的图像格式。TGA也包含了多种变体,TGA文件的第三个字节用来区别不是TGA的文件。该字节的值(二进制整数)及对应的文件类型如下。l 0:文件中没有图像数据。l 1:未压缩的,颜色表图像。l 2:未压缩的,RGB图像。l 3:未压缩的,黑白图像。l 9:游程长度(Runlength)编码的颜色表图像。l 10:游程长度(Runlength)编码的RGB图像。l 11:压缩的,黑白图像。l 32:使用Huffman、Delta和Runlength编码的颜色表图像。l 33:使用Huffman、Delta和Runlength编码的颜色映射图像,四叉树类型处理1. 数据类型1:未压缩的颜色表(color-mapped)图像TGA未压缩颜色表图像格式的说明如表1.1所示。表1.1 TGA未压缩颜色表图像格式说明偏移(字节)长度(字节)描述01图像信息字段(见本子表的后面)的字符数。本字段是1字节无符号整型,指出了图像格式区别字段长度,其取值范围是0到255,当它为0时表示没有图像的信息字段11颜色表的类型。该字段为表示对应格式1的图像而包含一个二进制121图像类型码。该字段总为1,这也是此类型为格式1的原因35颜色表规格,颜色表首址32颜色表首元表项的整型(低位-高位)索引52颜色表的长度。颜色表的表项总数,整型(低位-高位)71颜色表表项的位(bit)数。16代表16位TGA、24代表24位TGA、32代表32位TGA810图像规格82图像X坐标的起始位置。图像左下角X坐标的整型(低位-高位)值102图像Y坐标的起始位置。图像左下角Y坐标的整型(低位-高位)值122图像宽度。以像素为单位,图像宽度的整型(低位-高位)值142图像高度。以像素为单位,图像高度的整型(低位-高位)值161图像每像素存储占用位(bit)数171图像描述符字节bits 3~0:每像素的属性位(bit)数bit 4:保留,必须为0bit 5:屏幕起始位置标志0:原点在左下角1:原点在左上角Truevision图像必须为0bits 7~6:交叉数据存储标志00:无交叉01:两路奇/偶交叉10:四路交叉11:保留18可变图像信息字段。包含一个自由格式的,长度是图像记录块偏移0处的字节中的值。它常常被忽略(即偏移0处值为0),其最大可以含有255个字符。如果需要存储更多信息,可以放在图像数据之后(续表)偏移(字节)长度(字节)描述可变可变颜色表数据。起始位置由前一个字段的大小决定;其长度由单项数据大小和数据项数目决定(在前面相应的说明字段中给出),每项是2字节、3字节或4字节,字节中没有使用的位(bit)被认为是属性位(1)4字节表项中,字节1表示BLUE,字节2表示GREEN,字节3表示RED,字节4表示属性(2)3字节表项中各字节依次对应BLUE、GREEN、RED(3)2字节表项中,两个字节分解成如下形式:arrrrrgggggbbbbb,但是,由于低位在前,高位在后的存储顺序,从文件中读出表项时,将先读入gggbbbbb而后读入arrrrrgg,a表示属性位可变可变图像数据字段。该字段给出了(高度)×(宽度)个颜色表项索引,每个索引以整数个字节的形式存储(典型的例子如1或2个字节)所有的数据都没有符号,对于2字节表项而言,低位字节是先存储的2. 数据类型2:未压缩的无颜色表RGB图像TGA未压缩的无颜色表RGB图像格式的说明如表1.2所示。表1.2 TGA未压缩的无颜色表RGB图像格式说明偏移(字节)长度(字节)描述01图像信息字段(见本子表的后面)的字符数。本字段是1字节无符号整型,指出了图像格式区别字段的长度,其取值范围是0到255,当它为0时表示没有图像的信息字段11颜色表类型。该字段的内容或者为0或者为1;0表示没有颜色表,1表示颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略21图像类型码。该字段总为2,这也是此类型为格式2的原因35颜色表规格。如果颜色表类型字段为0则被忽略;否则描述如下32颜色表首址。颜色表首元入口的整型(低位-高位)索引52颜色表的长度。颜色表的表项总数,整型(低位-高位)71颜色表表项的位(bit)数。16代表16位TGA、24代表24位TGA、32代表32位TGA810图像规格82图像X坐标起始位置。图像左下角X坐标的整型(低位-高位)值102图像Y坐标起始位置。图像左下角Y坐标的整型(低位-高位)值122图像宽度。以像素为单位,图像宽度的整型(低位-高位)值142图像高度。以像素为单位,图像高度的整型(低位-高位)值161图像每像素存储占用位(bit)数。它的值为16、24或32等,决定了该图像是TGA 16、TGA24、TGA32等(续表)偏移(字节)长度(字节)描述171图像描述符字节bits 3~0:每像素对应的属性位的位数;对于TGA 16,该值为0或1;对于TGA 24,该值为0;对于TGA32,该值为8bit 4:保留,必须为0bit 5:屏幕起始位置标志0:原点在左下角1:原点在左上角Truevision图像必须为0bits 7~6:交叉数据存储标志00:无交叉01:两路奇/偶交叉10:四路交叉11:保留18可变图像信息字段。包含一个自由格式的,长度是图像记录块偏移0处的字节中的值。它常常被忽略(即偏移0处值为0),注意其最大可以含有255个字符。如果需要存储更多信息,可以放在图像数据之后可变可变颜色表数据。如果颜色表类型为0,则该域不存在,否则越过该域直接读取,图像颜色表规格中描述了每项的字节数,为2、3、4之一可变可变图像数据域。这里存储了(宽度)×(高度)个像素,每个像素中的rgb色值;该色值包含整数个字节(1)3字节表项中各字节依次对应BLUE、GREEN、RED。(2)2字节表项中,两个字节分解成如下形式:arrrrrgggggbbbbb,但是,由于低位在前,高位在后的存储顺序,从文件中读出表项时,将先读入gggbbbbb而后读入arrrrrgg;a表示属性位(3)4字节表项包含了分别代表blue、green、red及属性的四个字节。(由于硬件上的原因)有的时候TGA 24类型的图像也像TGA 32类型的图像那样存储3. 数据类型9:带颜色表的游程长度(Runlength)编码图像带颜色表的游程长度编码TGA图像格式的说明如表1.3所示。表1.3 带颜色表的游程长度编码TGA图像格式说明偏移(字节)长度(字节)描述01图像信息字段(见本子表的后面)的字符数。本字段是1字节无符号整型,指出了图像格式区别字段长度,其取值范围是0到255,当它为0时表示没有图像的信息字段11颜色表的类型。该字段为表示对应带颜色表的图像而总为121图像类型码。本类型该字段为二进制9(续表)偏移(字节)长度(字节)描述35颜色表规格。如果颜色表类型字段为0则被忽略;否则描述如下32颜色表首址。颜色表首元入口的整型(低位-高位)索引52颜色表的长度。颜色表的表项总数,整型(低位-高位)71颜色表表项的位(bit)数。16代表16位TGA、24代表24位TGA、32代表32位TGA810图像规格82图像X坐标起始位置。图像左下角X坐标的整型(低位-高位)值102图像Y坐标起始位置。图像左下角Y坐标的整型(低位-高位)值122图像宽度。以像素为单位,图像宽度的整型(低位-高位)值142图像高度。以像素为单位,图像高度的整型(低位-高位)值161图像每像素存储占用位(bit)数171图像描述符字节bits 3~0:每像素的属性位(bit)数bit 4:保留,必须为0bit 5:屏幕起始位置标志0:原点在左下角1:原点在左上角Truevision图像必须为0bits 7~6:交叉数据存储标志00:无交叉01:两路奇/偶交叉10:四路交叉11:保留18可变图像信息字段。包含一个自由格式的,长度是图像记录块偏移0处的字节中的值。它常常被忽略(即偏移0处值为0),其最大可以含有255个字符。如果需要存储更多信息,可以放在图像数据之后可变可变颜色表数据。起始位置由前一个字段的大小决定;其长度由单项数据大小和数据项数目决定(在前面相应的说明字段中给出),每项是2字节、3字节或4字节,字节中没有使用的位(bit)被认为是属性位。(1)4字节表项中,字节1表示BLUE、字节2表示GREEN、字节3表示RED、字节4表示属性。(2)3字节表项中各字节依次对应BLUE、GREEN、RED。(3)2字节表项中,两个字节分解成如下形 式:arrrrrgggggbbbbb,但是,由于低位在前,高位在后的存储顺序,从文件中读出表项时,将先读入gggbbbbb而后读入arrrrrgg,a表示属性位(续表)偏移(字节)长度(字节)描述可变可变图像数据域。本区域给出了(宽度)×(高度)个颜色表索引,这些索引存放在数据包中;有两种类型的数据包:run-length数据包以及未加工的数据包。每种类型的数据包含有1字节的头信息(其中指出了数据包类型和数目),其后是可变长度的数据域,头信息中最高位为1表示run-length类型的数据包,当它为0时,表示未加工的数据包。对于run-length数据包,头信息含义如下。1 bit id:7位的重复记数减1。由于7位表示的最大值为127,故最大的运行大小为128。1:c c c c c c c。对于未加工的数据包,头信息的含义如下。1 bitid:7位的像素个数减1。由于7位表示的最大值为127,故该类型的一个数据包中像素个数不能大于128。0:n n n n n n n。对于run-length数据包而言,头信息之后是一个简单的颜色索引,且假定该索引被重复头信息中低7位表示的次数,run-length数据包也许会跨越扫描线(扫描线起始于某行结束于下一行);对于未加工的数据包,头信息之后是颜色索引(数值由头信息给出),该类型的数据包也可能跨越扫描线4. 数据类型10:游程长度(Runlength)编码的RGB图像游程长度编码的RGBTGA图像格式说明如表1.4所示。表1.4 游程长度编码的RGBTGA图像格式说明偏移(字节)长度(字节)描述01图像信息字段(见本子表的后面)的字符数。本字段是1字节无符号整型,指出了图像格式区别字段长度,其取值范围是0到255,当它为0时表示没有图像的信息字段11该字段的内容或者为0或者为1;0表示没有颜色表,1表示颜色表存在。由于本格式是无颜色表的,因此此项通常被忽略21图像类型代码。本类型该字段为二进制1035颜色表规格。如果颜色表类型字段为0则被忽略;否则描述如下32颜色表首址。颜色表首元入口的整型(低位-高位)索引52颜色表的长度。颜色表的表项总数,整型(低位-高位)71颜色表表项的位(bit)数。16代表16位TGA、24代表24位TGA、32代表32位TGA810图像规格82图像X坐标起始位置。图像左下角X坐标的整型(低位-高位)值(续表)偏移(字节)长度(字节)描述102图像Y坐标起始位置。图像左下角Y坐标的整型(低位-高位)值122图像宽度。以像素为单位,图像宽度的整型(低位-高位)值142图像高度。以像素为单位,图像宽度的整型(低位-高位)值161图像每像素存储占用位(bit)数171图像描述符字节bits 3~0:每像素的属性位(bit)数;bit 4:保留,必须为0;bit5:屏幕起始位置标志;0:原点在左下角;1:原点在左上角;Truevision图像必须为0;bits7~6:交叉数据存储标志;00:无交叉;01:两路奇/偶交叉;10:四路交叉;11:保留18可变图像信息字段。包含一个自由格式的,长度是图像记录块偏移0处的字节中的值。它常常被忽略(即偏移0处值为0),其最大可以含有255个字符。如果需要存储更多信息,可以放在图像数据之后可变可变颜色表数据。如果颜色表类型为0,则该域不存在,否则越过该域直接读取;图像颜色表规格中描述了每项的字节数,为2、3、4之一可变可变图像数据域。本区域给出了(宽度)×(高度)个颜色表索引,这些索引存放在数据包中;有两种类型的数据包:run-length数据包以及未加工的数据包,每种类型的数据包含有1字节的头信息(其中指出了数据包类型和数目),其后是可变长度的数据域,头信息中最高位为1表示run-length类型的数据包,当它为0时,表示未加工的数据包。对于run-length数据包,头信息含义如下。1 bit id:7位的重复记数减1。由于7位表示的最大值为127,故最大的运行大小为128。1:c c c c c c c。对于未加工数据包,头信息的含义如下。1 bitid:7位的像素个数减1。由于7位表示的最大值为127,故该类型的一个数据包中像素个数不能大于128。0:n n n n n n n。对于runlength数据包,头信息之后是一个简单颜色值,且假定该值重复的次数为头信息中记录的数,run-length数据包也许会跨越扫描线(扫描线起始于某行结束于下一行);对于未加工的数据包,头信息之后是颜色值(数目由头信息指出)。颜色表项自身有2字节、3字节或4字节。(1)3字节表项中各字节依次对应BLUE、GREEN、RED。(2)2字节表项中,两个字节分解成如下形式:arrrrrgggggbbbbb,但是,由于低位在前,高位在后的存储顺序,从文件中读出表项时,将先读入gggbbbbb而后读入arrrrrgg;a表示属性位。(3)4字节表项包含了分别代表blue、green、red及属性的4个字节。(由于硬件上的原因)有的时候TGA 24类型的图像也像TGA 32类型的图像那样存储EXIF格式EXIF的格式是1994年富士公司提倡的数码相机图像文件格式,其实与JPEG格式相同,区别是除保存图像数据外,还能够存储摄影日期、使用光圈、快门、闪光灯数据等曝光资料和附带信息以及小尺寸图像。FPX格式FPX图像文件格式(扩展名为fpx)是由柯达、 微软、 HP及LivePictureInc联合研制,并于1996年6月正式发表,FPX是一个拥有多重分辩率的影像格式,即影像被储存成一系列高低不同的分辩率,这种格式的好处是当影像被放大时仍可维持影像的质素,另外,当修饰FPX影像时,只会处理被修饰的部分,不会把整幅影像一并处理,从而减小处理器及记忆体的负担,使影像处理时间减少。SVG格式SVG是可缩放的矢量图形格式。它是一种开放标准的矢量图形语言,可任意放大图形显示,边缘异常清晰,文字在SVG图像中保留可编辑和可搜寻的状态,没有字体的限制,生成的文件很小,下载很快,十分适合用于设计高分辨率的Web图形页面。PSD格式这是Photoshop图像处理软件的专用文件格式,文件扩展名是.psd,可以支持图层、通道、蒙板和不同色彩模式的各种图像特征,是一种非压缩的原始文件保存格式。扫描仪不能直接生成该种格式的文件。PSD文件有时容量会很大,但由于可以保留所有原始信息,在图像处理中对于尚未制作完成的图像,选用PSD格式保存是最佳的选择。CDR格式CDR格式是著名绘图软件CorelDRAW的专用图形文件格式。由于CorelDRAW是矢量图形绘制软件,所以CDR可以记录文件的属性、位置和分页等。但它在兼容度上比较差,所有CorelDraw应用程序中均能够使用,但其他图像编辑软件打不开此类文件。PCD格式PCD是Kodak PhotoCD的缩写,文件扩展名是.pod,是Kodak开发的一种Photo CD文件格式,其他软件系统只能对其进行读取。该格式使用YCC色彩模式定义图像中的色彩。YCC和CIE色彩空间包含比显示器和打印设备的RGB色和CMYK色多得多的色彩。PhotoCD图像大多具有非常高的质量。DXF格式DXF是Drawing Exchange Format的缩写,扩展名是.dxf,是AutoCAD中的图形文件格式,它以ASCII方式储存图形,在表现图形的大小方面十分精确,可被CorelDraw和3DS等大型软件调用编辑。UFO格式它是著名图像编辑软件UleadPhotolmapct的专用图像格式,能够完整地记录所有Photolmapct处理过的图像属性。值得一提的是,UFO文件以对象来代替图层记录图像信息。EPS格式EPS是EncapsulatedPostScript的缩写,是跨平台的标准格式,扩展名在PC平台上是.eps,在Macintosh平台上是.epsf,主要用于矢量图像和光栅图像的存储。EPS格式采用PostScript语言进行描述,并且可以保存其他一些类型信息,例如多色调曲线、Alpha通道、分色、剪辑路径、挂网信息和色调曲线等,因此EPS格式常用于印刷或打印输出。Photoshop中的多个EPS格式选项可以实现印刷打印的综合控制,在某些情况下甚至优于TIFF格式。PNG格式PNG(Portable NetworfGraphics)的原名称为"可移植性网络图像",是网上接受的最新图像文件格式。PNG能够提供长度比GIF小30%的无损压缩图像文件。它同时提供24位和48位真彩色图像支持以及其他诸多技术性支持。由于PNG非常新,所以目前并不是所有的程序都可以用它来存储图像文件,但Photoshop可以处理PNG图像文件,也可以用PNG图像文件格式存储。位图文件格式随着应用软件系统的增多,各种文件格式也日益增多,不少文件格式随着系统的推广而广泛流行,下面将一些在Phptpshop中出现过或常见的文件格式按位图文件、图示文件、矢量文件、元文件等进行分类介绍:位图文件格式位图是一组点(像素)组成的图像。它们由图像程序生成或在扫描图像时创建。Adobe Photoshop (.PSD):adobe Photoshop 的位图文件格式,为Macintosh和 MSWindows平台所支持,最大的图像像素是30000*30000,支持RLE压缩,广泛用于商业艺术。OS/2位图 (.BMP)Microsoft公司和IBM开发的位图文件格式。它为基于Intel机器运行的OS/2、MS——DOS、Windows和Windows NT所支持。有许多应用程序包括OS/2和非PC应用程序都支持这种格式。支持1位、4位、8位、和24位颜色。支持RLE压缩。最大的图像像素为64000*64000。用于保存位图信息。Windows位图(.bmp)Microsoft Windows 位图,由Microsoft公司开发,它为基于Intel机器的MicrosoftWindows 和Windows NT平台及许多应用程序支持。支持1位、4位、8位、16位、24位、32位颜色。图像大小无限制,支持RLE压缩,广泛用于交换和保存位图信息。CALS光栅(.CAL)美国国防部开发的位图文件格式,得到所有平台的支持。CALS仅支持单色图像,对图像大小无限制。支持“CCITT4组”压缩格式,大多用于美国政府的文档处理应用程序,还用作技术图像计算机辅助设计和计算机辅助制造以及图像处理应用程序的数据信息交换。光标(.CUR、 .DLL、 .EXE)资源文件格式,用于创建Windows3.1、Windows NT 和Windows 95界面的光标,支持1位和4位颜色。Scitex (.CT)位图文件格式。 为PC 平台以及大多数应用程序所支持。支持灰度级和CMYK(32位)颜色,不支持压缩,主用于颜色分色。CEM 光栅 (.IMC)Digital Research 开发的“图形环境管理器”的本地位图文件格式。为GEM、MS—DOS/Windows和AtariST平台所支持。支持16384种颜色。64666最大的图像像素为64000*64000,支持RLE压缩。主要用于AtariST平台,也经常用于PC桌面印刷环境。FlashPix格式由 Kodak 公司开发,用于加快高分辨率大文件在支持 FlashPix 技术的应用程序中的显示和传输速度。尽管Photoshop 不是 FlashPix 优化的应用程序,但可以打开和存储 FlashPix文件。FlashPix 格式支持灰度和 RGB 颜色模式,但不支持 Alpha 通道。 存储文件为 FlashPix格式时,可以选取是否使用 JPEG 压缩。图形交换格式(.GIF):CompuServe公司所创建的位图文件格式。为MS—DOS/Windows、Macintosh、UNIX、Amiga和其它平台所扶持。支持256色,最大图像像素是64000*64000,支持LZW压缩,主要用作交换格式,许多应用程序都支持这种格式,可在一个单独的文件中保存多个位图图像。图标(.ICO、.DLL、.EXE):用于为Windows3.1、Windows NTT 和Windows 95界面创建图标的资源文件格式。支持1位和4位颜色。Amiga(TM) IFF (交换文件格式)用于使用 VideoToaster,及将文件传递到和从 Commodore Amiga 系统传递文件。另外,这种格式在 IBM(R)兼容计算机上被许多绘画程序所支持。要用 Electronic Arts 公司的 DeluxePaint 软件,IFF是最好的输出格式。IFF 格式支持 RGB、索引颜色、灰度和位图颜色模式,但不支持 Alpha通道。在 World Wide Web 和其它网上服务的 HTML(超文本标记语言)文档中,JPEG(联合图片专家组)普遍用于显示图片和其它连续色调的图象文档。JPEG格式支持 CMYK、RGB 和灰度颜色模式,不支持 Alpha 通道。与GIF 格式不同,JPEG 保留 RGB 图象中的所有颜色信息,通过选择性地去掉数据来压缩文件。 JPEG图象在打开时自动解压缩。高等级的压缩会导致较低的图象品质,低等级的压缩则产生较高的图象品质。在大多数情况下,采用“最佳”品质选项产生的压缩效果与原图几乎没有什么区别。Macintosh绘画 (.MAC):Appel公司所开发的位图文件格式。为Macintosh平台所支持,仅支持单色原图,最大图像像素是576*720。支持RLE压缩,主要用于在Macintosh图形应用程序中保存黑白图形和剪贴画片。Kodak Photo CD (.PCD):EastmanKodak所开发的位图文件格式。为所有的平台所支持,PCD支持24位颜色,最大的图像像素是2048*3072,用于在CD—ROM上保存照片。PICT 格式广泛用于 Macintosh 图形和页面排版程序中,作为应用程序间传递文件的中间文件格式。PICT 格式支持带一个Alpha 通道的 RGB 文件和不带 Alpha通道的索引颜色、灰度、位图文件。PICT格式对于压缩具有大面积单色的图象非常有效。对于具有大面积黑色和白色的 Alpha 通道,这种压缩的压缩效果非常明显。PIXAR 格式是专为与 PIXAR 图象计算机交换文件而设计的。PIXAR 工作站用于高档图象应用程序,例如三维图象和动画。PIXAR格式支持带一个 Alpha 通道的 RGB 文件和灰度文件。画笔 (.pcx):用于Windows的PC画笔和Microsoft画笔的本地位图文件格式。为MS—DOS/Windows、UNIX和其它平台以及许多其它应用程序所支持。支持24位颜色,最大图像像素是64000*64000。支持RLE压缩。广范用于基于Windows的应用程序的保存和交换格式。作为 GIF 的免专利替代品开发的PNG(可移植网络图形)格式用于在 World Wide Web 上无损压缩和显示图象。与GIF 不同,PNG 支持 24 位图象,产生的透明背景没有锯齿边缘;但是,一些较早版本的 Web浏览器可能不支持 PNG 图象。PNG格式支持带一个 Alpha 通道的 RGB 和灰度模式和不带 Alpha 通道的位图、索引颜色模式。PNG 用存储的 Alpha通道定义文件中的透明区域;确保在存储文件为PNG 格式前删除想要的 Alpha 通道以外的所有 Alpha 通道。PicturePublisher 4.0(.pp4):MicroGrafx开发的位图文件格式。为PC平台和PicturePublisher所支持。支持1位、4位、8位、24位和32位颜色。支持LZW压缩。图像大小不受限制,用于位图信息的保存。Corel应用程序只能使用该格式。bmp 格式是一种灵活的文件格式,用于应用程序之间和计算机平台之间传递文件的。这个格式支持带Alpha 通道的 CMYK、RGB、灰度文件和不带Alpha 通道的多通道、Lab、索引颜色、双色调文件。Targa (.TGA):Targa图像文件,是Ttruevision公司开发的位图文件格式。为MS—DOS、Windows、UNIXAtari、Amiga和其它平台及许多应用程序支持。支持32位颜色,图像大小不受限制,支持RLE压缩,广范用于绘画、图形、图像应用程序和静态视频编辑。标签图像文件格式(.TIF):Aldus开发的位图文件格式。为MS—DOS/Windows、Macintosh、UNIX和其它平台以及大多数的绘画、图像和桌面印刷应用程序所支持。支持24位颜色。支持RLE、LZW、“CCITT3组和4组”及JPEG压缩。是广泛使用的,在平台和在应用程序间保存和交换图形信息的格式。图示文件格式:图示文件格式用于商业图形应用程序中的信息保存。Harvard图形2.0 (.FLW):Software Publishing开发的图示文件格式。为MS—DOS平台所支持,在Harvard图形和其它应用程序中使用,用于保存商业图形信息。该格式为SOftwarePublishing 专有。Harvard 图形3.0(.SH3):除了使用PC平台外,其它都与.STW格式相同。Lotus Freelance (.FLW):由Lotus 公司开发的图示文件格式,为PC平台所支持。在Lotus和FreeLance应用程序中使用。MS PowerPoint 2.0,3.0(.PPT):Microsoft公司开发的图示文件格式。为PC 平台所支持。在应用程序MSPowerPoint中使用。PDFPDF(可移植文档格式)被用于 Adobe Acrobat,Adobe Acrobat 是 Adobe 公司用于Windows、Mac OS、UNIX(R) 和 DOS 系统的一种电子出版软件。与 PostScript 页面一样,PDF文件可以包含矢量和位图图形,还可以包含电子文档查找和导航功能,如电子链接。矢量文件格式:矢量图像是按照绘图中所定义的各种线条及方向来保存图像的代数方程。它们也可以包括位图信息,一般用在插图程序如CoreIDRAW,或在位图跟踪应用程序如CoreOCR—TRACE中创建。矢量格式不受一定颜色深度的限制。Adobe Illustrator (.AI):Adobe Systems开发的矢量文件格式,为Windows平台和大量基于Windows的插图应用程序支持 。AutoCAD (.DXF):Auto CAD,一个计算机辅助设计应用程序的本地矢量文件格式。被MS—DOS平台所支持,支持256色,可以保存三维对象,不能被压缩。这种格式也同时被许多其它计算机辅助设计程序和某些绘图程序,包括CorelDRAW所支持。Encapsulated PostScript(.EPS):Adobe Systems 所开发的矢量文件格式,被MS—DOS、Windows、Macintosh、UNIX等平台和许多应用程序支持,一般用于插图文件和桌面印刷应用程序以及作为位图和矢量数据的交换。HGLHewlett Packard Graphics Language (.HGL): 惠普公司开发的矢量文件格式。被PC和Macintosh平台以及所使用的插图应用程序支持。广泛用作一种页面描述语言。IBM PIF (.PIF):IBM开发的矢量文件格式,被PC平台和IBM应用程序所支持,应用不广。Interpredted PostScript(.PS):Adobe Systems 开发的矢量文件格式,被PC、Macintosh和UNIX平台及所有的图形应用程序所支持。通常用作一种页面描述语言,在专业印刷工业领域应用非常广泛。MAC QuickDraw (.PCT):Macintosh 图像和QuickDraw图像,Apple(苹果)计算机公司所开发矢量文件格式,并且是QuickDraw的本地格式,被Macintosh平台所支持,支持24位颜色和PackBits和JPEG压缩,广泛应用于使用图形的Macintosh应用程序。MicroGrafx Draw (.DRW):MicroGrafx开发的矢量文件格式。被Windows平台和MicroGrafx绘画插图应用程序所支持。元文件文件格式元文件是一种有利于应用程序间信息交换的矢量文件格式。计算机图形元文件夹(.CGM):这种格式是由国际标准化组织和美国标准化局所开发的,得到所有平台的支持。CGM格式的图像颜色数的大小不受限制,支持RLE和“CCITT3组和4组”压缩。用于在平台间交换矢量和位图信息,支持非常复杂图像的交换。NAPLAS图形元文件(.NAP):矢量文件格式。被PC和UNIX平台及通讯应用程序所支持,主要用于计算机间的图形、图像通讯。OS/2 PM 元文件(.MET):图形管理器元文件,Microsoft公司和IBM开发的矢量文件格式,被OS/2平台所支持。颜色不受限制。支持RLE压缩,用于保存和和在基于OS/2的应用程序间图形信息的交换。Windows 元文件(.WMF):Wicrosoft Windows元文件。Microsoft公司开发的矢量文件夹格式。被Windows平台和若干基于Windows的图形应用程序所支持。支持24位颜色,广范用于保存和基于Windows的应用程序间的矢量和位图数据交换。Wordperfect图形(.WPG):WordPerfect公司开发的矢量文件格式。被MS—DOS、Windows、Macintosh和UNIX平台和Wordperfect等其它字处理应用程序所支持。支持256色和PLE压缩,用于保存文档和图像数据。总结总的来说,有两种截然不同的图像格式类型: 即有损压缩和无损压缩。1.有损压缩有损压缩可以减少图像在内存和磁盘中占用的空间,在屏幕上观看图像时,不会发现它对图像的外观产生太大的不利影响。因为人的眼睛对光线比较敏感,光线对景物的作用比颜色的作用更为重要,这就是有损压缩技术的基本依据。有损压缩的特点是保持颜色的逐渐变化,删除图像中颜色的突然变化。生物学中的大量实验证明,人类大脑会利用与附近最接近的颜色来填补所丢失的颜色。例如,对于蓝色天空背景上的一朵白云,有损压缩的方法就是删除图像中景物边缘的某些颜色部分。当在·屏幕上看这幅图时,大脑会利用在景物上看到的颜色填补所丢失的颜色部分。利用有损压缩技术,某些数据被有意地删除了,而被取消的数据也不再恢复。无可否认,利用有损压缩技术可以大大地压缩文件的数据,但是会影响图像质量。如果使用了有损压缩的图像仅在屏幕上显示,可能对图像质量影响不太大,至少对于人类眼睛的识别程度来说区别不大。可是,如果要把一幅经过有损压缩技术处理的图像用高分辨率打印机打印出来,那么图像质量就会有明显的受损痕迹。2.无损压缩无损压缩的基本原理是相同的颜色信息只需保存一次。压缩图像的软件首先会确定图像中哪些区域是相同的,哪些是不同的。包括了重复数据的图像(如蓝天)就可以被压缩,只有蓝天的起始点和终结点需要被记录下来。但是蓝色可能还会有不同的深浅,天空有时也可能被树木、山峰或其他的对象掩盖,这些就需要另外记录。从本质上看,无损压缩的方法可以删除一些重复数据,大大减少要在磁盘上保存的图像尺寸。但是,无损压缩的方法并不能减少图像的内存占用量,这是因为,当从磁盘上读取图像时,软件又会把丢失的像素用适当的颜色信息填充进来。如果要减少图像占用内存的容量,就必须使用有损压缩方法。无损压缩方法的优点是能够比较好地保存图像的质量,但是相对来说这种方法的压缩率比较低。但是,如果需要把图像用高分辨率的打印机打印出来,最好还是使用无损压缩几乎所有的图像文件都采用各自简化的格式名作为文件扩展名。从扩展名就可知道这幅图像是按什么格式存储的,应该用什么样的软件去读/写等等。颜色模型(一)常见的模型包括 HSB(表示色相、饱和度、亮度);RGB(表示红、绿、蓝);CMYK(表示青、洋红、黄、黑);以及 CIEL*a*b*.HSB 模型:基于人类对颜色的感觉,HSB 模型描述颜色的三个基本特征:色相是从物体反射或透过物体传播的颜色。在到360度的标准色轮上,色相是按位置度量的。在通常的使用中,色相是由颜色名称标识的,比如红、橙或绿色。饱和度有时也称彩度,是指颜色的强度或纯度。饱和度表示色相中灰成分所占的比例,用从 0%(灰色)到100%(完全饱和)的百分比来度量。在标准色轮上,从中心向边缘饱和度是递增的。亮度是颜色的相对明暗程度,通常用从 0%(黑)到 100%(白)的百分比来度量。A. 饱和度 B. 色相 C. 亮度 D. 所有色相RGB模型/加色 (RGB)绝 大部分的可见光谱可以用红、绿和蓝 (RGB)三色光按不同比例和强度的混合来表示。在颜色重叠的位置,产生青色、洋红和黄色。 因为 RGB颜色合成产生白色,它们也叫作加色。将所有颜色加在一起产生白色──也就是说,所有光被反射回眼睛。加色用于光照、视频和显示器。减色 (CMYK)CMYK 模型:CMYK模型以打印在纸张上油墨的光线吸收特性为基础,当白光照射到半透明油墨上时,部分光谱被吸收,部分被反射回眼睛。 理论上,纯青色(C)、洋红 (M) 和黄色 (Y)色素能够合成吸收所有颜色并产生黑色。由于这个原因,这些颜色叫作减色。因为所有打印油墨都会包含一些杂质,这三种油墨实际上产生一种土灰色,必须与黑色(K) 油墨混合才能产生真正的黑色。(使用 K 而不是 B 是为了避免与蓝色混淆。)将这些油墨混合产生颜色叫作四色印刷。 减色(CMY) 和加色 (RGB) 是互补色,每对减色产生一种加色,反之亦然。L*a*b 模型L*a*b 模型:L*a*b 颜色模型是在 1931年国际照明委员会(CIE)制定的颜色度量国际标准的基础上建立的。1976 年,这种模型被重新修订并命名为 CIE L*a*b。L*a*b 颜色设计为与设备无关;不管使用什么设备(如显示器、打印机、计算机或扫描仪)创建或输出图象,这种颜色模型产生的颜色都保持一致。L*a*b 颜色由亮度或光亮度分量 (L) 和两个色度分量组成;这两个分量即 a 分量(从绿到红)和 b分量(从蓝到黄)。A. 光度=100(白) B. 绿到红分量 C. 蓝到黄分量 D. 光度=0(黑)到红分量