位图格式

合集下载

常用图片文件格式

常用图片文件格式

常用图片文件格式1、bmp格式——位图文件——几乎不压缩——占用磁盘空间过大Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。

随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。

这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点——占用磁盘空间过大。

2、jpg格式——国际标准图像压缩格式——有损压缩JPEG是国际标准图像压缩格式,是用于连续色调静态图像压缩的一种标准,文件后缀名为,jpg或,jpeg,是最常用的图像文件格式。

属于有损压缩格式,它能够将图像压缩在很小的储存空间,一定程度上会造成图像数据的损伤。

尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量降低,如果追求高品质图像,则不宜采用过高的压缩比例。

JPEG压缩技术十分先进,它可以用有损压缩方式去除冗余的图像数据,换句话说,就是可以用较少的磁盘空间得到较好的图像品质。

而且JPEG是一种很灵活的格式,具有调节图像质量的功能,它允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比越大,图像品质就越低;相反地,压缩比越小,图像品质就越高。

同一幅图像,用JPEG格式存储的文件是其他类型文件的1/10~1/20,通常只有几十KB,质量损失较小,基本无法看出。

JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网;它可减少图像的传输时间,支持24位真彩色;也普遍应用于需要连续色调的图像中。

3、png格式——无损压缩的位图格式——支持透明效果png是一种采用无损压缩算法的位图格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。

PNG使用无损数据压缩算法,一般应用于JAVA程序、网页中,原因是它压缩比高,生成文件体积小。

PNG可以为原图像定义256个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。

BMP位图与JPEG文件格式

BMP位图与JPEG文件格式

Step To Compress
2) Downsampling YUV411 YUV422 3) Level shift All 8-bit unsigned values (Y,Cb,Cr) in the image are "level shifted": they are converted to an 8-bit signed representation, by subtracting 128 from their value.
BMP位图格式 位图格式 位图信息头
typedef struct tagBITMAPINFOHEADER { DWORD biSize; // 这个结构的长度,为40字节 这个结构的长度, 字节 LONG biWidth; // 图像的宽度,单位是像素 图像的宽度, LONG biHeight; // 图像的高度,单位是像素 图像的高度, WORD biPlanes; // 必须是 ,不用考虑 必须是1, WORD biBitCount; // 位图位数,常用的值为 位图位数,常用的值为1 黑白二色图)、 )、4( 色图)、8( 色图)、 (黑白二色图)、 (16色图)、 (256色)、 (真 色)、24( 彩色) 彩色)
BMP位图与JPEG文件格式 BMP位图与JPEG文件格式 位图与JPEG
张隽
1
BMPˆ‘ BMPˆ‘格 图 JPEG‚‰格 JPEG 件格 件
2
BMP位图格式 BMP位图格式
BMP位图格式 位图格式
图像与图形的差异: 图像与图形的差异: 1、存储方式 、 2、表示方式 、 DDB与DIB的区别: 与 的区别: 的区别 DDB在Windows.h中定义为 在 中定义为BITMAP结构, 结构, 中定义为 结构 MFC对其进行封装为 对其进行封装为CBitmap类。 对其进行封装为 类

图形文件格式大全

图形文件格式大全

图形文件格式大全一、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:Windows 位图Windows 位图可以用任何颜色深度(从黑白到24 位颜色)存储单个光栅图像。

Windows 位图文件格式与其他Microsoft Windows 程序兼容。

它不支持文件压缩,也不适用于Web 页。

从总体上看,Windows 位图文件格式的缺点超过了它的优点。

为了保证照片图像的质量,请使用PNG 文件、JPEG 文件或TIFF 文件。

BMP 文件适用于Windows 中的墙纸。

优点:BMP 支持 1 位到24 位颜色深度。

BMP 格式与现有Windows 程序(尤其是较旧的程序)广泛兼容。

缺点:BMP 不支持压缩,这会造成文件非常大。

BMP 文件不受Web 浏览器支持。

PCX:PC 画图“PC 画图”图片(也被称为Z-Soft 位图)会以任何颜色深度存储单个光栅图像。

画笔图片更广泛地用于较早的Windows 程序和基于MS-DOS 的程序。

画笔图片与许多较新的程序兼容。

PCX 图片支持“行程长度编码”(RLE) 内部压缩。

优点:PCX 在许多基于Windows 的程序和基于MS-DOS 的程序间是标准格式。

PCX 支持内部压缩。

缺点:PCX 不受Web 浏览器支持。

PNG:可移植网络图形PNG 图片以任何颜色深度存储单个光栅图像。

PNG 是与平台无关的格式,同时PNG格式可以很好的支持无损压缩。

优点:PNG 支持高级别无损耗压缩。

PNG 支持alpha 通道透明度。

PNG 支持伽玛校正。

PNG 支持交错。

PNG 受最新的Web 浏览器支持。

缺点:较旧的浏览器和程序可能不支持PNG 文件。

作为Internet 文件格式,与JPEG 的有损耗压缩相比,PNG 提供的压缩量较少。

作为Internet 文件格式,PNG 对多图像文件或动画文件不提供任何支持。

GIF 格式支持多图像文件和动画文件。

JPEG:联合摄影专家组JPEG 图片以24 位颜色存储单个光栅图像。

BMP24位位图格式总结

BMP24位位图格式总结

图像BMP24位位图格式总结1、创建图片创建一张只有六个像素的图片(两行三列),每个像素的颜色RGB组合值如图1(示意图)所示:图12、windows系统下存储格式(使用WinHex打开)3、文件结构3.1 文件头(bmp file header),提供文件的格式、大小等信息,共14个字节,如图2所示。

图23.1.1 0-1字节(2个字节)0x42 0x4d = "BM",表示这是Windows支持的位图格式,如图3所示。

图33.1.2 2-5字节(4个字节),表示该bmp文件的大小,存储形式为图4所示,因为小端对齐形式存储,实际存储的16进制数为0x4e,转换为十进制为78,与我们直接查看此图片的属性所看到的文件大小一致。

注:对于arm,intel这种x86架构的复杂指令CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,小端对齐,但对于unix服务器的CPU,更多是采用大端对齐的情况图43.1.3 6-9字节这是两个保留段,为0如图5所示。

图53.1.4 A-D字节如图6所示,存储数据为0x36,十进制为54,表示的意义为从文件头到位图数据需偏移54字节。

图63.2 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息,40个字节,如图7所示。

图73.2.1 0E-11字节,如图8所示,存储数据为0x28,十进制为40,表示意义为:位图信息头的大小为40个字节。

图83.2.2 12-15字节,如图9所示,存储数据为0x03,十进制为3,表示意义为:图像宽为3个像素,与我们创建的图像一致。

图93.2.3 16-19字节,如图10所示,存储数据为0x02,十进制为2,表示意义为:图像高为2个像素,与我们创建的图像一致。

图103.2.4 1A-1B字节,如图11所示,存储数据为0x01,该值总为1,表示意义为位元面数。

JPG、GIF、BMP和PNG

JPG、GIF、BMP和PNG

JPG、GIF、BMP和PNG格式分别是什么意思?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格式只能保存最大8位色深的数码图像,所以它最多只能用256色来表现物体,对于色彩复杂的物体它就力不从心了。

尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。

BMP 文档

BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。

随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。

这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。

所以,目前BMP在单机上比较流行。

目录编辑本段简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows 环境下运行的所有图象处理软件都支持BMP图象文件格式。

Windows系统内部各图像绘制操作都是以BMP为基础的。

Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。

Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。

BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE 作扩展名)。

6.1.2 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件的组成结构名称符号位图文件头 (bitmap-file header) BITMAPFILEHEADER bmfh位图信息头 (bitmap-information header) BITMAPINFOHEADER bmih 彩色表 (color table) RGBQUAD aColors[]图象数据阵列字节 BYTE aBitmapBits[]位图文件结构可综合在表6-01中。

位图常见的格式

位图常见的格式位图图像(BitmapImage)是一种由矢量图像转换而成的用来在计算机屏幕上显示静态图像的格式。

位图图像可以存储为不同的文件格式,其中最常见的格式包括BMP,GIF,JPEG,PCX,PNG,TIFF等。

这些文件格式有一些共同的特征,也有一些不同的特征。

BMP(bits-per-pixel)文件格式是最常见的位图图像格式。

该格式的特征是每一个像素都可以被描述为精确的位深度,即每一个像素点都可以用计算机中的位来表示。

不同的BMP文件一般有不同的位深度,如1位、4位、8位、24位等。

BMP文件格式支持多种色彩系统,如调色板(Palette)、RGB(Red、Green、Blue)等。

GIF(Graphic Interchange Format)文件格式是一种可以存储256个调色板颜色索引的图像文件格式。

GIF是一种使用LZW (Lempel-Ziv-Welch)算法进行压缩的图像文件格式,因此其文件大小一般较小,这使其在网络上传播和保存上具有优势。

GIF文件格式一般用于制作简单的动画效果,使其在网站页面上产生点缀效果。

JPEG(Joint Photographic Experts Group)文件格式是图像文件格式中最流行的一种,它可以存储将近16.7万色彩索引,它可以将一幅图像压缩到更小的文件大小,这使其在网络上传播十分方便。

JPEG文件格式可以在没有失真的情况下压缩至一半左右的图像大小,这使得它在商业上得到广泛应用。

PCX(Paintbrush eXchange)文件格式是一种常见的网络上传播的图像文件格式。

它的特征在于文件存储的是位图像素,分辨率可以达到640×480,而且可以存储256色彩索引的调色板,它支持使用调色板和RGB模式进行调色。

PNG(Portable Network Graphics)文件格式是一种新的图像文件格式,它可以支持24位位图像素,它可以完美地模拟出彩色图像。

bmp对齐规则

bmp对齐规则BMP(位图文件格式)对齐规则是指在存储位图数据时,每个像素占据的字节数需要按照一定的规则进行对齐。

对齐规则是为了确保内存读取和写入的效率,并且可以在定位像素数据时更加准确。

下面将详细介绍BMP对齐规则。

1. BMP文件结构BMP文件由文件头、位图信息头和像素数据组成。

文件头长度为14字节,用于描述整个文件的信息;位图信息头长度为40字节,用于描述位图的基本信息,如宽度、高度、色彩位数等;像素数据存储具体的像素颜色信息。

在像素数据的存储过程中,需要注意对齐规则。

2.像素数据对齐规则像素数据的对齐规则将像素按照行来存储,每行像素数据存储完毕后,可能需要进行对齐操作,以满足对齐要求。

2.1每行像素占据的字节数每行像素占据的字节数是根据位图的宽度和色彩位数来决定的。

色彩位数指的是每个像素可以表示颜色的位数,如24位色彩位数代表每个像素用24位存储颜色。

位图的宽度常用像素点数来表示,例如位图宽度为100个像素,色彩位数为24位。

每个像素用3字节表示。

则每行像素占据的字节数为:每行所占字节数= (像素宽度*色彩位数+ 31) / 32 * 42.2对齐字节数在计算每行像素占据的字节数后,可能需要进行对齐操作。

对齐操作要求每行像素数据的字节数必须是4的倍数,如果不满足要求,则需要进行对齐。

如果每行像素占据的字节数已经是4的倍数,则无需对齐。

如果每行像素占据的字节数不是4的倍数,需要补齐字节数,计算方式如下:对齐字节数= 4 - (每行所占字节数% 4)2.3字节对齐对齐字节数计算完成后,需要将对齐字节数添加到每行像素占据的字节数中,得到一个最终的对齐后字节数。

2.4总结在存储位图数据时,根据位图的宽度和色彩位数计算每行像素占据的字节数,然后,根据对齐字节数进行对齐操作,得到最终的对齐后字节数。

这样,每行像素数据存储完成后,下一行像素数据将从对齐后的位置开始存储,确保像素数据存储的连续性和准确性。

常见的位图格式有( )。

常见的位图格式有( )。

bmp文件bmp(bitmap的缩写)文件格式是windows本身的位图文件格式,所谓本身是指windows内部存储位图即采用这种格式。

一个bmp格式的文件通常有bmp的扩展名,但有一些是以.rle为扩展名的,rle的意思是行程长度编码(runlengthencoding)。

这样的文件意味着其使用的数据压缩方法是.bmp格式文件支持的两种rle方法中的一种。

pcx文件pcx是在pc上成为位图文件存储标准的第一种图像文件格式。

它最早出现在zsoft公司的paintbrush软件包中,在80年代早期授权给微软与其产品捆绑发行,而后转变为microsoftpaintbrush,并成为windows的一部分。

虽然使用这种格式的人在减少,但这种带有pcx扩展名的文件在今天仍是十分常见的。

tiff文件pcx格式是所有位图文件格式中最简单的,而tiff则是最难的一种。

tiff文件含有tif的扩展名。

它以8字节长的图像文件头开始(ifh),这个文件头中最重要的成员是一个指向名为图像文件目录(ifd)的数据结构的指针。

ifd是一个名为标记(tag)的用于区分一个或多个可变长度数据块的表,标记中含有关于图像的信息。

tiff 文件格式定义70多种不同类型的标记,有的用来存放以像素为单位的图像宽度和高度,有的用来存放色表(如果需要的话),当然还必须有用来存放位图数据的标记,一个tiff格式文件完全为它的标记所决定,而且这种文件结构极易扩展,因为你要附加一些特征只需增加一些额外的标记。

gif文件当许多图像方面的权威一想到lzw的时候,他们也会想到gif (graph icsinterchange format,读作jiff)这是一种常用的跨平台的位图文件格式,最初为compuserve公司所创。

gif文件通常带有.gif的扩展名,而且在compuseve上大量存在。

png文件png(portable network graphic,发音做ping)文件格式是作为gif的替代品开发的,它能够避免使用gif文件所遇到的常见问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。

随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。

这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。

所以,目前BMP在单机上比较流行。

目录BMP文件格式分析1bmp位图和调色板的概念RGB颜色阵列??1加载文件?1、加载文件头?12、加载位图信息头?13、行对齐?14、加载图片数据?15、绘制?16、3D(OpenGL)的不同之处?BMP文件格式分析简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。

Windows系统内部各图像绘制操作都是以BMP为基础的。

Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。

Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP 图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。

BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。

1.2 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件的组成结构名称符号位图文件头(bitmap-file header) BITMAPFILEHEADER bmfh位图信息头(bitmap-information header) BITMAPINFOHEADER bmih 彩色表(color table) RGBQUAD aColors[]图象数据阵列字节BYTE aBitmapBits[]位图文件结构可综合在表6-01中。

表01 位图文件结构内容摘要偏移量域的名称大小内容图象文件头0000h 文件标识 2 bytes 两字节的内容用来识别位图的类型:…BM‟:Windows 3.1x, 95, NT, ……BA‟:OS/2 Bitmap Array…CI‟:OS/2 Color Icon…CP‟:OS/2 Color Pointer…IC‟:OS/2 Icon…PT‟:OS/2 Pointer注:因为OS/2系统并没有被普及开,所以在编程时,你只需判断第一个标识“BM”就行。

0002h File Size 1 dword 用字节表示的整个文件的大小0006h Reserved 1 dword 保留,必须设置为0000Ah Bitmap Data Offset 1 dword 从文件开始到位图数据开始之间的数据(bitmap data)之间的偏移量000Eh Bitmap Header Size 1 dword 位图信息头(Bitmap Info Header)的长度,用来描述位图的颜色、压缩方法等。

下面的长度表示:28h - Windows 3.1x, 95, NT, …0Ch - OS/2 1.xF0h - OS/2 2.x注:在Windows95、98、2000等操作系统中,位图信息头的长度并不一定是28h,因为微软已经制定出了新的BMP文件格式,其中的信息头结构变化比较大,长度加长。

所以最好不要直接使用常数28h,而是应该从具体的文件中读取这个值。

这样才能确保程序的兼容性。

0012h Width 1 dword 位图的宽度,以象素为单位0016h Height 1 dword 位图的高度,以象素为单位001Ah Planes 1 word 位图的位面数(注:该值将总是1)图象信息头001Ch Bits Per Pixel 1 word 每个象素的位数1 - 单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。

你可以自己定义这两种颜色)4 - 16 色位图8 - 256 色位图16 - 16bit 高彩色位图24 - 24bit 真彩色位图32 - 32bit 增强型真彩色位图001Eh Compression 1 dword 压缩说明:0 - 不压缩(使用BI_RGB表示)1 - RLE 8-使用8位RLE压缩方式(用BI_RLE8表示)2 - RLE 4-使用4位RLE压缩方式(用BI_RLE4表示)3 - Bitfields-位域存放方式(用BI_BITFIELDS表示)0022h Bitmap Data Size 1 dword 用字节数表示的位图数据的大小。

该数必须是4的倍数0026h HResolution 1 dword 用象素/米表示的水平分辨率002Ah VResolution 1 dword 用象素/米表示的垂直分辨率002Eh Colors 1 dword 位图使用的颜色数。

如8-比特/象素表示为100h或者256.0032h Important Colors 1 dword 指定重要的颜色数。

当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要调色板数据根据BMP版本的不同而不同Palette N * 4 byte 调色板规范。

对于调色板中的每个表项,这4个字节用下述方法来描述RGB 的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图象数据根据BMP版本及调色板尺寸的不同而不同Bitmap Data xxx bytes 该域的大小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。

构件详解1. 位图文件头位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义:typedef struct tagBITMAPFILEHEADER {/* bmfh */UINT bfType;DWORD bfSize;UINT bfReserved1;UINT bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中:bfType 说明文件的类型.(该值必需是0x4D42,也就是字符'BM'。

我们不需要判断OS/2的位图标识,这么做现在来看似乎已经没有什么意义了,而且如果要支持OS/2的位图,程序将变得很繁琐。

所以,在此只建议你检察'BM'标识)注意:查ascii表 B 0x42, M 0x4d, bfType为两个字节,B为low字节,M为high字节所以bfType=0x4D42,而不是0x424D,但注意bfSize 说明文件的大小,用字节为单位bfReserved1 保留,必须设置为0bfReserved2 保留,必须设置为0bfOffBits 说明从文件头开始到实际的图象数据之间的字节的偏移量。

这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。

2. 位图信息头位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-information header)和彩色表(color table)组成,前者用BITMAPINFOHEADER结构定义,后者用RGBQUAD结构定义。

BITMAPINFO结构具有如下形式:typedef struct tagBITMAPINFO {/* bmi */BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];} BITMAPINFO;其中:bmiHeader 说明BITMAPINFOHEADER结构,其中包含了有关位图的尺寸及位格式等信息bmiColors 说明彩色表RGBQUAD结构的阵列,其中包含索引图像的真实RGB值。

BITMAPINFOHEADER结构包含有位图文件的大小、压缩类型和颜色格式,其结构定义为:typedef struct tagBITMAPINFOHEADER {/* bmih */DWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;其中:biSize 说明BITMAPINFOHEADER结构所需要的字数。

注:这个值并不一定是BITMAPINFOHEADER结构的尺寸,它也可能是sizeof(BITMAPV4HEADER)的值,或是sizeof(BITMAPV5HEADER)的值。

这要根据该位图文件的格式版本来决定,不过,就现在的情况来看,绝大多数的BMP图像都是BITMAPINFOHEADER结构的(可能是后两者太新的缘故吧:-)。

biWidth 说明图象的宽度,以象素为单位biHeight 说明图象的高度,以象素为单位。

注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。

如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。

大多数的BMP文件都是倒向的位图,也就是时,高度值是一个正数。

(注:当高度值是一个负数时(正向图像),图像将不能被压缩(也就是说biCompression成员将不能是BI_RLE8或BI_RLE4)。

biPlanes 为目标设备说明位面数,其值将总是被设为1 biBitCount 说明比特数/象素,其值为1、4、8、16、24、或32 biCompression 说明图象数据压缩的类型。

其值可以是下述值之一:BI_RGB:没有压缩;BI_RLE8:每个象素8比特的RLE压缩编码,压缩格式由2字节组成(重复象素计数和颜色索引);BI_RLE4:每个象素4比特的RLE压缩编码,压缩格式由2字节组成BI_BITFIELDS:每个象素的比特由指定的掩码决定。

相关文档
最新文档