bmp位图调色板

合集下载

位图文件(BMP)

位图文件(BMP)

位图⽂件(BMP)位图⽂件简介BMP(Bitmap-File)格式是最常⽤的图像⽂件存取格式之⼀,是微软为其Windows环境设置的标准图像格式,BMP位图⽂件默认的⽂件扩展名是“.BMP”或者“.bmp”,有时它也会以“.DIB”或者“RLE”为扩展名。

⽤BMP格式存放的图像⼏乎可以被所有的图像显⽰软件读取。

BMP图形⽂件是Windows采⽤的图像⽂件格式,在Windows环境下运⾏的所有图像软件都⽀持BMP图像⽂件格式。

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

Windows3.0以前的BMP⽂件格式与显⽰设备有关,因此把这种BMP图像⽂件格式称为设备相关位图(Device Dependent Bitmap,DDB)⽂件格式。

Windows3.0以后的BMP⽂件都与显⽰设备⽆关,因此把这种BMP⽂件格式称为设备⽆关位图(Device Independent Bitmap,DIB)格式。

BMP⽂件格式摘要每个BMP⽂件只能存放⼀张图像。

图像数据是否采⽤压缩⽅式存放,取决于⽂件的⼤⼩与格式,即压缩处理是BMP图像⽂件的⼀个选项,⽤户可以根据需要进⾏选择。

其中,⾮压缩格式是BMP图像⽂件所采⽤的⼀种通⽤格式,它按照⼀定的顺序忠实的记录图像中每⼀个像素的颜⾊值。

如果⽤户确定将BMP⽂件格式压缩处理,则Windows设计了⼀种压缩⽅式:如果位图为16⾊模式,则采⽤RLE4压缩⽅式,如果图像为256⾊模式,则采⽤RLE8压缩⽅式。

BMP图像数据⽂件格式可以存储为单⾊,16⾊,256⾊和真彩⾊四种图像数据,其数据的排列顺序与⼀般⽂件不同,它以图像的左下⾓作为起点存储图像,⽽不是以图像的坐上⾓为起点。

⽽且BMP图像⽂件格式中还存在另外⼀个与众不同的特点,即其调⾊板数据所采⽤的数据结构中,红,绿,蓝三种基⾊数据的排列顺序也恰好与其他图像⽂件格式相反。

总之,BMP图像⽂件格式拥有许多适合于Windows环境的新特⾊,⽽且随着Windows版本的不断更新,微软也在不断的改进BMP图像⽂件格式。

位图和调色板

位图和调色板

第1章Windows位图和调色板1.1 位图和调色板的概念如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS 成功的一个重要因素是它可视化的漂亮界面。

那么Windows是如何显示图象的呢?这就要谈到位图(bitmap)。

我们知道,普通的显示器屏幕是由许许多多点构成的,我们称之为象素。

显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若干行,就扫过了一屏。

为了防止闪烁,每秒要重复上述过程几十次。

例如我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次。

我们称这种显示器为位映象设备。

所谓位映象,就是指一个二维的象素矩阵,而位图就是采用位映象方法显示和存储的图象。

举个例子,图1.1是一幅普通的黑白位图,图1.2是被放大后的图,图中每个方格代表了一个象素。

我们可以看到:整个骷髅就是由这样一些黑点和白点组成的。

图1.1 骷髅图1.2 放大后的骷髅位图那么,彩色图是怎么回事呢?我们先来说说三元色RGB概念。

我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)组合而成。

有的颜色含有红色成分多一些,如深红;有的含有红色成分少一些,如浅红。

针对含有红色成分的多少,可以分成0到255共256个等级,0级表示不含红色成分;255级表示含有100%的红色成分。

同样,绿色和蓝色也被分成256级。

这种分级概念称为量化。

这样,根据红、绿、蓝各种不同的组合我们就能表示出256×256×256,约1600万种颜色。

这么多颜色对于我们人眼来说已经足够丰富了。

表1.1 常见颜色的RGB组合值颜色R G B红255 0 0蓝0 255 0绿0 0 255黄255 255 0紫255 0 255青0 255 255白255 255 255黑0 0 0灰128 128 128你大概已经明白了,当一幅图中每个象素赋予不同的RGB值时,能呈现出五彩缤纷的颜色了,这样就形成了彩色图。

BMP文件调色板

BMP文件调色板

一.BMP文件概述BMP文件格式,又称为位图(Bitmap)或是Device Independent Device(DIB,与设备无关位图),是Windows使用的图像文件格式,位图是一个二维的位数组,它与图像的图素一一对应。

当现实世界的图像被扫描成位图以后,图像被分割成网格,并以图素作为取样单位。

在位图中的每个图素值指明了一个单位网格内图像的平均颜色。

单色位图每个图素只需要一位,灰色或彩色位图中每个图素需要多个位。

位图代表了Windows程序内储存图像信息的两种方法之一。

储存图像信息的另一种形式是metafile, Metafile储存的就是对图像如何生成的描述,而不是将图像以数字化的图标代表。

位图有两个主要的缺点。

第一个问题是容易受设备依赖性的影响。

最明显的就是对颜色的依赖性,在单色设备上显示彩色位图的效果总是不能令人满意的。

另一个问题是位图经常暗示了特定的显示分辨率和图像纵横比,位图的第二个缺点是需要很大的储存空间。

位图除空间尺寸以外,位图还有颜色尺寸。

这里指的是每个图素所需要的位数,有时也称为位图的颜色深度(color depth)、位数(bit-count)或位/图素(bpp:bits per pixel)数。

位图中的每个图素都有相同数量的颜色,每图素1位的位图称为二阶(bilevel)、二色(bicolor)或者单色(monochrome)位图。

每图素可以是0或1,0表示黑色,1可以表示白色,但并不总是这样。

对于其它颜色,一个图素就需要有多个位。

可能的颜色值等于2位数值。

用2位可以得到4种颜色,用4位可以得16种颜色,8位可得到256种颜色,16位可得到65,536种颜色,而24位可得到16,777,216种颜色。

BMP文件的数据按照从文件头开始的先后顺序分为四个部分:bmp文件头(bmp file header):提供文件的格式、大小等信息。

位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息。

BMP图像结构

BMP图像结构
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数(14-17字节)
LONG biWidth; // 位图的宽度,以像素为单位(18-21字节)
LONG biHeight; // 位图的高度,以像素为单位(22-25字节)
BMP图像的结构
一般的bmp文件的结结构主要包括文件头,BMP信息头,调色板,位图数据内容
(1)BMP文件头(14字节) ,文件的第0字节到第13字节为BMP图像的文件头。BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下:
BYTE rgbBlue; // 蓝色的亮度(值范围为0-255)
BYTE rgbGreen; // 绿色的亮度(值范围为0-255)
BYTE rgbRed; // 红色的亮度(值范围为0-255)
BYTE rgbReserved;// 保留,必须为0
当biBitCount=1时,8个像素占1个字节;
当biBitCount=4时,2个像素占1个字节;
当biBitCount=8时,1个像素占1个字节;
当biBitCount=24时,1个像素占3个字节;
Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。
WORD bfReserved2; // 位图文件保留字,必须为0(8-9字节)
DWORD bfOffBits; // 位图数据的起始位置,以相对于位图(10-13字节)
// 文件头的偏移量表示,以字节为单位
} BITMAPFILEHEADER;
(2) BMP信息头

BMP 文档

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文件的读写

• lpszFilter是一个包含有通配符的以“|”字符分隔的字符 串。要注意的是, 在第一个“|”字符之前是将要显示在 文件对话框的“文件类型”列表框中的信息, 第二个
“ | ”字符和第一个“ | ”字符之间的内容为对话框的过
滤器内容。在字符串szFilter的尾部, 使用两个“|”字符
而不是一个, 表示过滤器内容结束。
StretchDIBits函数简介
• • • • • • • • • • • • hdc:指向目标设备环境的句柄。 XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标。 YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。 nDestWidth:指定目标矩形的宽度。 nDestHeight:指定目标矩形的高度。 XSrc:指定DIB中源矩形(左上角)的X轴坐标,坐标以像素点表示。 YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示。 nSrcWidth:按像素点指定DIB中源矩形的宽度。 nSrcHeight:按像素点指定DIB中源矩形的高度。 lpBits:指向DIB位的指针,这些位的值按字节类型数组存储。 lpBitsInfo:指向BITMAPINFO结构的指针,该结构包含有关DIB方面的信息。 iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了, 那么该bmiColors是否包含了明确的RGB值或索引。参数iUsage必须取下列值, 这些值的含义如下: DIB_PAL_COLOR:表示该数组包含对源设备环境的 逻辑调色板进行索引的16位索引值。 DIB_RGB_COLORS:表示该颜色表 包含原义的KGB值。 dwRop:指定源像素点、目标设备环境的当前刷子和目标像素点是如何组合形成 新的图像。 返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失 败,那么返回值是GDI_ERROR。 备注:。参数iUsage一般设为DIB_RGB_COLORS。dwRop一般设为SRCCOPY 。

BMP的颜色位深说明

BMP的颜色位深说明

BMP的颜色位深说明今天同事遇到一个问题,由于客户要求的图片一定是BMP R5 G6 B5模式,可是存出来的这种图片格式,在PC机上显示时,会有如下问题:第一,几乎是所有图片预览工具都看不到,第二,用画图工具打开的时候,发现首尾的顺序不对,本属于左边的一块区域被填充到了右边,而在PS里打开就很正常。

这使我有点困惑了,为什么会出现这种现像?R5 G6 B5到底又是一种什么格式呢?查过资料之后,我终于明白,原来是这样的:BMP取自位图BitMaP的缩写,也称为DIB(与设备无关的位图)是微软视窗图形子系统(GDI)内部使用的一种位图图形格式,它是微软视窗平台上的一个简单的图形文件格式。

我们知道,BMP根据颜色深度,可以分为2(1位)、16(4位)、256(8位)、65536(16位)和1670万(24位)以及32位含有alpha通道。

8位图像可以是索引彩色图像外,也可以是灰阶图像,而索引彩色图片所使用的颜色来源就是RGB颜色值。

图像上的每个点阵都是由这些调色板上的RGB值混合而来,由于这个源因,从16位开始,对于调色的板的定义就有多种模式:X1 R5 G5 B5是PC操作系统默认的16位BMP颜色位深分配格式,使用的是标准的RGB 颜色,其中X1代表1位的黑白值(或者未使用),R5代表红色位深为5位,G5代表绿色位深为5位,B5代表了蓝色位深为5位。

四个值相加刚好是16位;R5 G6 B5,电子产品中较为常用的图像模式,这种模式是红色R位深为5位,G5代表绿色G位深为6位,B5代表了蓝色B位深为5位。

三个值相加刚好是16位;这种模式常和翻转序列配合使用。

A1 R5 G5 B5,这种图像模式暂时未知主要应用于哪里。

模式是A1代表1位的alpha透明通道,R5代表红色位深为5位,G5代表绿色位深为5位,B5代表了蓝色位深为5位。

四个值相加刚好是16位;16位椐我的了解好像是没有透明通道的,为什么会有这种格式,我也不太清楚,而且这种模式在PS里一直都是打灰的,没见可以使用过,这里记录一下,有知道的朋友,我们可以一起探讨。

bmp是什么格式

bmp是什么格式

图有关的数据的一种标准,因此在Windows环境中运行的 图形图像软件都支持BMP图像格式。 典型的BMP图像文件由四部分组成: 1:位图
头文件数据结构,它包含BMP图像文件的类型、显示内 容等信息; 2:位图信息数据结构,它包含有BMP图像的宽、高、压 缩方法,以及定义颜色等信
息; 3:调色板,这个部分是可选的,有些位图需要调色板, 有些位图,比如真彩色图(24位的BMP)就不需要调色板; 4:位图数据,这部分的
BMP(全称Bitmap)是Window操作系统中的标准图像文件 格式,可以分成两类:设备相关位图(DDB)和设备无关位 图(DIB),使用非常
广。它采用位映射存储格式,除了图像深度可选以外, 不采用其他任何压缩,因此,BMP文件所占用的空间很 大。BMP文件的图像深度可选lbP文件存储数据时,图像的扫描方式 是按从左到右、从下到上的顺序。由于BMP文件格式是 Windows环境中交换与
内容根据BMP位图使用的位数不同而不同,在24位图中 直接使用RGB,而其他的小于24位的使用调色板中颜色索 引值。 bmp文件怎么打开?
这是WINDOWS的位图文件,使用画笔或者其它的图片查 看器都能打开它。
转载请保留出处,谢谢支持!
网瑞测速 /

bmp的知识点

bmp的知识点

bmp的知识点BMP的知识点BMP(Bitmap)是一种图像文件格式,它以像素为基本单位来描述图像。

下面将介绍BMP文件的结构、特点以及常见的应用。

一、BMP文件结构BMP文件由文件头、位图信息头、调色板和图像数据组成。

1. 文件头(14字节):包含文件类型(2字节)、文件大小(4字节)、保留字段(4字节)和图像数据偏移量(4字节)等信息。

2. 位图信息头:包含位图信息头大小(4字节)、图像宽度(4字节)、图像高度(4字节)、颜色平面数(2字节)、每个像素所占位数(2字节)等信息。

3. 调色板(可选):用于存储图像的颜色信息,包括调色板项数、颜色索引和颜色值等。

4. 图像数据:按行存储的像素数据,每个像素用指定的位数来表示。

二、BMP文件特点1. BMP文件格式简单,易于解析和处理,适用于各种平台和应用程序。

2. BMP文件支持多种色彩深度,如1位、4位、8位、16位、24位和32位等,可以满足不同图像质量和存储空间需求。

3. BMP文件保留了图像的原始数据,不进行压缩,因此不会损失图像的质量,但文件大小相对较大。

4. BMP文件支持灰度图像和彩色图像,灰度图像每个像素只有一个亮度值,彩色图像每个像素有红、绿、蓝三个分量的值。

三、BMP文件的应用1. 图像处理:BMP文件是常用的图像处理格式,可以通过读取、修改和保存BMP文件来实现各种图像处理操作,如图像旋转、缩放、灰度化、边缘检测等。

2. 图像显示:BMP文件可以被各种图像显示软件和设备所支持,如画图工具、图片浏览器、数码相框、打印机等。

3. 图像转换:BMP文件可以通过转换工具将其转换为其他图像格式,如JPEG、PNG、GIF等,以满足不同应用场景的需求。

4. 图像分析:BMP文件中的像素数据可以被提取和分析,用于图像处理算法的开发、图像识别和图像分析等领域。

5. 图像存储:BMP文件可以作为图像的原始存储格式,用于长期保存和备份,以保证图像质量和数据的完整性。

BMP图象格式简介

BMP图象格式简介

BMP图像格式简介BMP文件由文件头(包括BITMAPFILEHEADER和BITMAPINFOHEADER),调色板(PALETTE)以及图像数据(DA TA)构成。

1.文件头:共计54Byte(以下简记为B,b代表bit)包含两个部分,第一是包含BMP文件类型,大小,打印格式,称为BITMAPFILEHEADER,定义如下:偏移量:0~13,共计14Btypedef struct tagBITMAPFILEHEADER{WORD bftype; //数据地址为0,类型unsigned char,内容‘BM’,表明图像格式DWORD bfsize; //数据地址为2,类型unsigned long,以字节为单位定义图像文件的大小WORD bfReserved1; //数据地址为6,类型unsigned int,保留字WORD bfReserved2; //数据地址为8,类型unsigned int,保留字DWORD bfoffBits; //数据地址为10,类型unsigned long,以字节为单位指示图像数据在文件中的起始地址,即图像数据相对文件头的偏移量}第二部分说明位图的大小等数据,定义如下:偏移量14~53:共计40Btypedef struct tagBITMAPINFOHEADER{DWORD bisize; //数据地址为14,类型unsigned long,以字节为单位指示本结构(BITMAPINFOHEADER)的存储容量,固定为40/28H。

(有改动,最好读取具体的值,而不要直接使用定值。

)DWORD biwidth; //数据地址为18,类型unsigned long,以象素为单位给出BMP图像的宽DWORD biheight; //数据地址为22,类型unsigned long,以象素为单位给出BMP图像的高WORD biplants; //数据地址为26,类型unsigned int,代表目标设备的平面数目为1WORD bibitcount; //数据地址为28,类型unsigned int,确定每个象素所需位数,单色取1,16色取4,256色取8,真彩取24DWORD bicompression; //数据地址为30,类型unsigned long,表明是否压缩DWORD bisizeimage; //数据地址为34,类型unsigned long,以字节为单位给出BMP类图像数据占有空间大小,未压缩图像取为0(不一定)DWORD bixpeispermeter; //数据地址为38,类型unsigned long,垂直分辨率DWORD biypeispermeter; //数据地址为42,类型unsigned long,水平分辨率DWORD biclrused; //数据地址为46,类型unsigned long,位图使用颜色数DWORD biclrimportant; //数据地址为50,类型unsigned long,位图使用重要颜色数}2.调色板调色板存在于256色(8位),16色(4位)和单色(1位)图像中,真彩(24位)图像没有调色板。

bmp文件解码

bmp文件解码

LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;这个结构的长度是固定的,为40个字节(LONG为32位整数),各个域的说明如下:14biSize指定这个结构的长度,为40。

18biWidth指定图象的宽度,单位是象素。

22biHeight指定图象的高度,单位是象素。

26biPlanes必须是1,不用考虑。

28biBitCount指定表示颜色时要用到的位数,常用的值为1(黑白二色图), 4(16色图), 8(256色),16(16bit高彩色), 24(24bit真彩色),32(32bit增强型真彩色)。

30biCompression指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一些Windows定义好的常量)。

要说明的是,Windows位图可以采用RLE4,和RLE8的压缩格式,但用的不多。

我们今后所讨论的只有第一种不压缩的情况,即biCompression为BI_RGB的情况。

34biSizeImage指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来:biSizeImage=biWidth’ × biHeight要注意的是:上述公式中的biWidth’必须是4的整倍数(所以不是biWidth,而是biWidth’,表示大于或等于biWidth的,最接近4的整倍数。

举个例子,如果biWidth=240,则biWidth’=240;如果biWidth=241,biWidth’=244)。

如果biCompression为BI_RGB,则该项可能为零38biXPelsPerMeter指定目标设备的水平分辨率,单位是每米的象素个数,关于分辨率的概念,我们将在第4章详细介绍。

42biYPelsPerMeter指定目标设备的垂直分辨率,单位同上。

位图格式

位图格式

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)和定义位图的字节阵列,它具有如下所示的形式。

BMP位图格式详解

BMP位图格式详解

位图格式BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。

它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。

在系统中以BMP为扩展名保存。

打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。

现在讲解BMP的4个组成部分:1.文件头信息块0000-0001 :文件标识,为字母ASCII码“BM”。

0002-0005 :文件大小。

0006-0009 :保留,每字节以“00”填写。

000A-000D :记录图像数据区的起始位置。

各字节的信息含义依次为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。

2.图像描述信息块000E-0011:图像描述信息块的大小,常为28H。

0012-0015:图像宽度。

0016-0019:图像高度。

001A-001B:图像的plane总数(恒为1)。

001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。

001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。

0022-0025:图像区数据的大小。

0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。

002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。

002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。

3.颜色表颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。

其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。

即首先4字节表示颜色号0的颜色,接下来表示颜色号1的颜色,依此类推。

4.图像数据区颜色表接下来位是位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位;16色图像每点占4位;256色图像每点占8位;真彩色图像每点占24位。

BMP文件的结构

BMP文件的结构

继续分析接下来的数据,根据BMP文件结构的定义,接下来的数据是位图信息头,cat2.bmp 图像文件的位图信息头的内容如图5-5所示。

表5-7所示为cat2.bmp图像文件中位图信息头各字段的含义。

表5-7 cat2.bmp图像文件中位图信息头各字段的含义继续分析接下来的数据,根据BMP文件结构的定义,因为cat2.bmp图像是256色的位图,所以应该有256个调色板,每个调色板占4字节,整个调色板一共1024字节大小。

cat2.bm p 图像文件的调色板数据如图5-6和图5-7所示。

从图5-6和图5-7中可以看出,cat2.bm p图像的调色板地址从00000036h开始到00000435h结束,即00000435h - 00000036h + 1 =400h = 1024。

如果想查看cat2图像的调色板对应的实际显示颜色,可以使用Adobe Photoshop CS打开cat2.bm p,在Adobe Photoshop CS的菜单栏中选择"图像"→"模式"→"颜色表",即可观看cat2的调色板,如图5-8所示。

图5-8所示cat2.bmp的调色板颜色和图5-6中的十六进制数据是一一对应的。

在Adobe Photoshop CS的调色板上单击任何一个像素的颜色即可弹出一个拾色器对话框显示该像素颜色的详细组成信息。

cat2.bmp调色板和cat2.bmp的十六进制数据的对应关系如图5-9所示。

继续分析接下来的数据,根据BMP文件结构的定义,如果一个图像有调色板,那么紧跟在调色板后面的是图像的数据,这些数据不是实际的颜色值,而是指向调色板数组的索引,根据索引来获取调色板中的颜色,如图5-10所示。

因为cat2.bm p是256色的位图,即采用了8位色深作为指向调色板数组的索引,所以根据图5-10中显示的数据可以得知:49 49 49 B1 49 49 49 49 49 99表示cat2.bm p位图左下角第1个像素的颜色等于调色板[49],第2个像素的颜色等于调色板[49] ,第3个像素的颜色等于调色板[49] ,第4个像素的颜色等于调色板[B1]……依此类推。

关于BMP解码为RGB565并在LCD上显示

关于BMP解码为RGB565并在LCD上显示

关于BMP解码为RGB565并在LCD上显⽰开发环境:Keil uVersion5平台:N32903, NonOS, 480x272 LCD⼀. BMP⽂件格式:这⾥主要说说24位BMP。

BMP⽂件的数据按照从⽂件头开始的先后顺序分为四个部分:Ø bmp⽂件头(bmp file header):提供⽂件的格式、⼤⼩等信息Ø 位图信息头(bitmap information):提供图像数据的尺⼨、位平⾯数、压缩⽅式、颜⾊索引等信息Ø 调⾊板(color palette):可选,如使⽤索引来表⽰图像,调⾊板就是索引与其对应的颜⾊的映射表Ø 位图数据(bitmap data):就是图像数据啦^_^下⾯结合Windows结构体的定义,通过⼀个表来分析这四个部分。

我们⼀般见到的图像以24位图像为主,即R、G、B三种颜⾊各⽤8个bit来表⽰,这样的图像我们称为真彩⾊,这种情况下是不需要调⾊板的,也就是所位图信息头后⾯紧跟的就是位图数据了。

因此,我们常常见到有这样⼀种说法:位图⽂件从⽂件头开始偏移54个字节就是位图数据了,这其实说的是24或32位图的情况。

这也就解释了我们按照这种程序写出来的程序为什么对某些位图⽂件没⽤了。

⼀、bmp⽂件头Windows为bmp⽂件头定义了如下结构体:typedef struct tagBITMAPFILEHEADER{UINT16 bfType;DWORD bfSize;UINT16 bfReserved1;UINT16 bfReserved2;DWORD bfOffBits;} BITMAPFILEHEADER;其中:⼆、位图信息头同样地,Windows为位图信息头定义了如下结构体:需要特别注意的是: biHeight不仅代表图⽚的⾼度,还描述了位图是否是熟直倒向的,及如果biHeight为正,则图⽚是颠倒的,解码时需要从下往上解码。

关于图片存储格式的整理(BMP格式介绍)

关于图片存储格式的整理(BMP格式介绍)

关于图⽚存储格式的整理(BMP格式介绍)BMPBMP(全称Bitmap)是Window操作系统中的标准图像⽂件格式可以分成两类:设备相关位图(DDB)和设备⽆关位图(DIB),使⽤⾮常⼴。

它采⽤位映射存储格式,除了图像深度可选以外,不采⽤其他任何压缩,因此,BMP⽂件所占⽤的空间很⼤。

BMP⽂件的图像深度可选lbit、4bit、8bit及24bit。

BMP⽂件存储数据时,图像的扫描⽅式是按从左到右、从下到上的顺序。

由于BMP⽂件格式是Windows环境中交换与图有关的数据的⼀种标准,因此在Windows环境中运⾏的图形图像软件都⽀持BMP图像格式。

组成 典型的BMP图像⽂件由四部分组成: 1:位图头⽂件数据结构,它包含BMP图像⽂件的类型、显⽰内容等信息; 2:位图信息数据结构,它包含有BMP图像的宽、⾼、压缩⽅法,以及定义颜⾊等信息; 3:调⾊板,这个部分是可选的,有些位图需要调⾊板,有些位图,⽐如真彩⾊图(24位的BMP)就不需要调⾊板; 4:位图数据,这部分的内容根据BMP位图使⽤的位数不同⽽不同,在24位图中直接使⽤RGB,⽽其他的⼩于24位的使⽤调⾊板中颜⾊索引值。

对应的数据结构 1:BMP⽂件组成 BMP⽂件由⽂件头、位图信息头、颜⾊信息和图形数据四部分组成。

2:BMP⽂件头(14字节) BMP⽂件头数据结构含有BMP⽂件的类型、⽂件⼤⼩和位图起始位置等信息。

其结构定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType; // 位图⽂件的类型,必须为BM(1-2字节) DWORD bfSize; // 位图⽂件的⼤⼩,以字节为单位(3-6字节) WORD bfReserved1; // 位图⽂件保留字,必须为0(7-8字节) WORD bfReserved2; // 位图⽂件保留字,必须为0(9-10字节) DWORD bfOffBits; // 位图数据的起始位置,以相对于位图(11-14字节) // ⽂件头的偏移量表⽰,以字节为单位 } BITMAPFILEHEADER; 3:位图信息头(40字节) BMP位图信息头数据⽤于说明位图的尺⼨等信息。

BMP图片格式

BMP图片格式

缩)、1(BI_RLE8压缩类型)、2(BI_RLE4压缩类型)之一。
(31-34字节)
static int sizeImage;// 位图的大小,以字节为单 位(35-38字节)
int biXPelsPerMeter;// 位图水平分辨率,每 米像素数(39-42字节)
int biYPelsPerMeter;// 位图垂直分辨率,每 米像素数(43-46字节)
每像素占用的位 数,即bpp
每个像素所需的
位数,必须是 1(双色)、4(16色)、 8(256色)、24(真
彩色)之一
字节顺序 31,32,33,34 35,36,37,38
39,40,41,42
43,44,45,46 47,48,49,50 51,52,53,54
数据结构 int int
int
int int int
今天讲的是打开真彩色BMP位图。真 彩色即24位图,它是不需要调色板的。
4:位图数据
这部分的内容因位图实际像素位数和编码格式 而不同,在真彩位图中直接使用RGB真彩色值; 而有调色板的位图则使用调色板中颜色索引值。
位图数据的读取
1.每行的字节数必须是4的倍数,如果不 是,则需要用0补齐。
2.BMP位图数据的存放是从下到上,从左 到右的。先读最后一行,读完后在读倒 数第二行。
返回
2:图像参数,它包含图像的宽、高、压缩方法,以及颜色定义等信息;
字节顺序
数据结构
描述
15,16,17,18
当前结构体的大
int
小,通常是40或
56
19,20,21,22 23,24,25,26
int
图像宽度(像素)
int

bmp图像结构详解

bmp图像结构详解

1.位图和调色板的概念如今Windows(3.x以及95,NT)系列已经成为决大多数用户使用的操作系统。

它比DOS成功的一个重要因素是它可视化的漂亮界面,例如你可以在桌面上铺上你喜欢的墙纸。

那么Windows 是如何显示图象的呢?这就要谈到位图(Bitmap)。

我们知道,普通的显示器屏幕是由许许多多的点构成的,我们称之为象素。

显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若干行,就扫过了一屏。

为了防止闪烁,每秒要重复上述过程几十次。

例如我们常说的屏幕分辨率为640*480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次。

我们称这种显示器为位映象设备。

所谓位映象,就是指一个二维的象素矩阵,而位图就是采用位映象方法显示和存储的图象。

举个例子,下图1是一幅普通的黑白位图,图2是被放大后的图,图中每个方格代表了一个象素,我们可以看到:整个骷髅就是由这样一些黑点和白点组成的。

图1.骷髅(左) 图2.放大后的骷髅位图(右)那么,彩色图是怎么回事呢?我们先来说说三元色RGB概念。

我们知道,自然界中的所有颜色都可以由红,绿,蓝(R,G,B)组合而成。

有的颜色含有红色成分多一些,如深红;有的含有红色成分少一些,如淡红。

针对含有红色成分的多少,可以分成0到255共256个等级,0级表示不含红色成分,255级表示含有100%的红色成分。

同样,绿色和蓝色也被分成256级。

这种分级的概念被称作量化。

这样,根据红,绿,蓝各种不同的组合我们就能表示出256*256*256,约1千6百万种颜色。

这么多颜色对于我们人眼来已经足够了。

下表是常见的一些颜色的RGB组合值。

颜色R G B红25500蓝00255绿02550黄2552550紫2550255青0255255白255255255黑000灰128128128你大概已经明白了,当一幅图中每个象素赋予不同的RGB值时,就能呈现出五彩缤纷的颜色了,这样就形成了彩色图。

关于位深16的BMP文件

关于位深16的BMP文件

不足 4的倍 数的补 足方式 : lineByte = (biWidth * biBitCount / 8 + 3) / 4 * 4
ቤተ መጻሕፍቲ ባይዱ
二、BMP 位图数据的处理 这部分就涉及到不同位深的图片实际数据存放方式。针对以下三种分别说明,8 位、
16 位和 24 位。 8 位:又分为灰度图和彩色图,对于灰度图,调色板内的值均为{00 00 00 00}~{00 FF FF
接着,分别读取 R、G、B 的值,将 1 个像素的值分别与红绿蓝的掩码做与运算后,在 分别向右移位,为什么要移位呢?红绿蓝这三种颜色存储大小分别为 1 个字节,而我们做 与运算后得到的是其实际值中高 5 位的值,所以要向右移位,使其变为 1 个字节大小,即 8 位。
这样就读取出 16 位的像素值了,565 模式类似,不多说了。
最后说下 16 位图:这类图像 1 个像素要 2 个字节来存储,那么问题来了,2 个字节 16 位,要存储 R、G、B 三种颜色,怎么分呢?这样就有了两种存储模式,当信息头内的 biCompression = 0 时,为 555 模式。biCompression 为其他值时我都把它归为 565 模式。现 在分别说这两种模式:
FF},图像数据就是该像素的实际灰度值,1 个像素需要 1 个字节来表示;对于彩色图,调 色板则存储着 256 种颜色,图像数据就是该像素颜色在调色板中的索引值。
先说 24 位:这类图像又叫真彩色图,无调色板,1 个像素要 3 个字节来存储,3 个字 节分别表示 R、G、B,因此图像数据就是实际的 RGB 值。
好了,涉及到的 3 种位图数据都说完了,关键就是怎么从内存里取出我们要的 RGB 的 值。8 位和 24 位就不提供代码了,不会的自己问度娘。对于 16 位 RGB 值得读取代码如 下:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

调色板调色板概述每个应用程序都有自己的调色板,使用调色板时要先向系统申请,调色板分为前台调色板和后台调色板,windows为优先级高的程序分配前台调色板.我们经常会发现当启动一个大一点的程序时,桌面和其他应用程序的颜色变得粗糙起来,就是因为其他应用程序的调色板正在转为后台调色板.Windows系统内部保留了一个20种颜色的调色板,用来显示窗口,菜单等通用界面每个设备上下文都拥有一个逻辑调色板,如果要使用内部系统调色板(20种颜色)之外的颜色,则应该创建一个新的逻辑调色板并将其选入到设备上下文中.再把设备上下文中的逻辑调色板实现到系统调色板中,新的颜色才能实现.在逻辑调色板被实现到系统调色板时,Windows会建立一个调色板映射表,当设备上下文用逻辑调色板中的颜色绘图时,GDI绘图函数会查询调色板映射表以把像素值从逻辑调色板的索引转换成系统调色板的索引.创建调色板BOOL CreatePalette(LPLOGPALETTE lpLogPalette );其中lpLogPalette是一个指向LOGPALETTE 结构的指针typedef struct tagLOGPALETTE { WORD palVersion; //windows版本号,一般是0x300WORD palNumEntries; //调色板中颜色表项的数目PALETTEENTRY palPalEntry[1]; //每个表项的颜色和使用方法} LOGPALETTE;typedef struct tagPALETTEENTRY {BYTE peRed; //红(0-255)BYTE peGreen;// 绿BYTE peBlue; //蓝BYTE peFlags; //一般为0} PALETTEENTRY;上面只是建立了一个逻辑调色板,而逻辑调色板只是一张孤立的颜色表,并不能对系统产生影响,所以要使用调色板还需要下面这些函数CPalette* SelectPalette(CPalette* pPalette,BOOL bForceBackground );这个函数用来将一个调色板载入设备上下文,第一个参数是一个调色板指针,第二个参数用来指定调色板作为前景色还是背景色使用,为TURE时,作为背景色使用,为FALSE时,当窗口是活动窗口或活动窗口的子窗口是,调色板将做为前景色使用,否则做为背景色来使用.如果使用调色板的是一个内存设备上下文,则该参数被忽略.UINT RealizePalette( );该函数把设备上下文中的逻辑调色板实现到系统调色板中, 函数的返回值表明调色板映射表中有多少项被改变了这两个函数的使用如下:CPalette *pOldPalette ;CWindowDC dc(this) ;pOldPalette=dc.SelectPalette(&pal, FALSE) ;dc.RealizePalette() ;dc.SelectPalette(pOldPalette, FALSE) ;如果某一个窗口要显示特殊的颜色,那么一般应该在处理WM_PAINT消息时实现自己的逻辑调色板,也就是说,在OnPaint或OnDraw函数中重绘以前,要调用SelectPalette和RealizePalette,如果窗口显示的颜色比较重要,则要在调用SelectPalette时指定bForceBackground参数为FALSE.创建调色板的一般步骤:1 建立一个LOGPALETTE结构和PALETTEENTRY数组2 对PALETTEENTRY数组进行赋值,即创建调色板颜色表3 建立CPalette对象并使用CreatePalette函数初始化调色板对象4 使用SelectPalette函数将设备描述表和调色板联系起来5 使用CDC中的RealizePalette函数使调色板生效为了协调各个窗口对系统调色板的使用,Windows在必要的时候会向顶层窗口和重绘窗口发送消息WM_QUERYNEWPALETTE和WM_PALETTECHANGED.当某一顶层或重叠窗口被激活时,会收到WM_QUERYNEWPALETTE消息,在窗口的创建之处也会收到该消息,该消息先于WM_PAINT消息到达窗口,如果活动窗口要使用特殊的颜色,则在收到该消息时应该实现自己的逻辑调色板并重绘窗口.11.1.1 调色板的原理PC机上显示的图象是由一个个像素组成的,每个像素都有自己的颜色属性。

在PC的显示系统中,像素的颜色是基于RGB模型的,每一个像素的颜色由红(B)、绿(G)、蓝(B)三原色组合而成。

每种原色用8位表示,这样一个的颜色就是24位的。

以此推算,PC的SVGA适配器可以同时显示224约一千六百多万种颜色。

24位的颜色通常被称作真彩色,用真彩色显示的图象可达到十分逼真的效果。

但是,真彩色的显示需要大量的视频内存,一幅640×480的真彩色图象需要约1MB的视频内存。

由于数据量大增,显示真彩色会使系统的整体性能迅速下降。

为了解决这个问题,计算机使用调色板来限制颜色的数目。

调色板实际上是一个有256个表项的RGB颜色表,颜色表的每项是一个24位的RGB颜色值。

使用调色板时,在视频内存中存储的不是的24位颜色值,而是调色板的4位或8位的索引。

这样一来,显示器可同时显示的颜色被限制在256色以内,对系统资源的耗费大大降低了。

显示器可以被设置成16、256、64K、真彩色等显示模式,前两种模式需要调色板。

在16或256色模式下,程序必须将想要显示的颜色正确地设置到调色板中,这样才能显示出预期的颜色。

图11.1显示了调色板的工作原理。

使用调色板的一个好处是不必改变视频内存中的值,只需改变调色板的颜色项就可快速地改变一幅图象的颜色或灰度。

在DOS中,调色板的使用不会有什么问题。

由于DOS是一个单任务操作系统,一次只能运行一个程序,因此程序可以独占调色板。

在Windows环境下,情况就不那么简单了。

Windows是一个多任务操作系统,可以同时运行多个程序。

如果有几个程序都要设置调色板,就有可能产生冲突。

为了避免这种冲突,Windows使用逻辑调色板来作为使用颜色的应用程序和系统调色板(物理调色板)之间的缓冲。

图11.1 调色板工作原理在Windows中,应用程序是通过一个或多个逻辑调色板来使用系统调色板(物理调色板)。

在256色系统调色板中,Windows保留了20种颜色作为静态颜色,这些颜色用作显示Windows界面,应用程序一般不能改变。

缺省的系统调色板只包含这20种静态颜色,调色板的其它项为空。

应用程序要想使用新的颜色,必须将包含有所需颜色的逻辑调色板实现到系统调色板中。

在实现过程中,Windows首先将逻辑调色板中的项与系统调色板中的项作完全匹配,对于逻辑调色板中不能完全匹配的项,Windows将其加入到系统调色板的空白项中,系统调色板总共有236个空白项可供使用,若系统调色板已满,则Windows将逻辑调色板的剩余项匹配到系统调色板中尽可能接近的颜色上。

每个设备上下文都拥有一个逻辑调色板,缺省的逻辑调色板只有20种保留颜色,如果要使用新的颜色,则应该创建一个新的逻辑调色板并将其选入到设备上下文中。

但光这样还不能使用新颜色,程序只有把设备上下文中的逻辑调色板实现到系统调色板中,新的颜色才能实现。

在逻辑调色板被实现到系统调色板时,Windows会建立一个调色板映射表。

当设备上下文用逻辑调色板中的颜色绘图时,GDI绘图函数会查询调色板映射表以把像素值从逻辑调色板的索引转换成系统调色板的索引,这样当像素被输出到视频内存中时就具有了正确的颜色值。

图11.2说明了这种映射关系,从图中读者可以体会到逻辑调色板的缓冲作用。

在该图中,GDI绘图函数使用逻辑调色板的索引1中的颜色来绘图,通过查询调色板映射表,得知系统调色板中的第23号索引与其完全匹配,这样实际输出到视频内存中的像素值是23。

注意图中还演示了颜色的不完全匹配,即逻辑调色板中的索引15和系统调色板中的索引46。

每个要使用额外颜色的窗口都会实现自己的逻辑调色板,逻辑调色板中的每种颜色在系统调色板中都有相同或相近的匹配。

调色板的实现优先权越高,匹配的精度也就越高。

Windows规定,活动窗口的逻辑调色板(如果有的话)具有最高的实现优先权。

这是因为活动窗口是当前与用户交互的窗口,应该保证其有最佳的颜色显示。

非活动窗口的优先权是按Z 顺序自上到下确定的(Z顺序就是重叠窗口的重叠顺序)。

活动窗口有权将其逻辑调色板作为前景调色板实现,非活动窗口则只能实现背景调色板。

提示:术语活动窗口(Active window)或前台窗口(Foreground window)是指当前与用户交互的窗口,活动窗口的顶端的标题条呈高亮显示,而非活动窗口的标题条则是灰色的。

活动窗口肯定是一个顶层窗口(Top-level window),顶层窗口是指没有父窗口或父窗口是桌面窗口的窗口,这种窗口一般都有标题和边框,主要包括框架窗口和对话框。

术语重叠窗口是指作为应用程序主窗口的窗口,我们可以把对话框看成是一种特殊的重叠式窗口。

图11.2 调色板的映射关系11.1.2 调色板的创建和实现MFC的CPalette类对逻辑调色板进行了封装。

该类的成员函数CreatePalette负责创建逻辑调色板,该函数的声明为:BOOL CreatePalette( LPLOGPALETTE lpLogPalette ); //成功则返回TRUE。

参数lpLogPalette是一个指向LPLOGPALETTE结构的指针,LPLOGPALETTE结构描述了逻辑调色板的内容,该结构的定义为:typedef struct tagLOGPALETTE {WORD palVersion; //Windows版本号,一般是0x300WORD palNumEntries; //调色板中颜色表项的数目PALETTEENTRY palPalEntry[1]; //每个表项的颜色和使用方法} LOGPALETTE;结构中最重要的成员是PALETTEENTRY数组,数组项的数目由palNumEntries成员指定。

PALETTEENTRY结构对调色板的某一个颜色表项进行了描述,该结构的定义为:typedef struct tagPALETTEENTRY {BYTE peRed; //红色的强度(0~255,下同)BYTE peGreen; //绿色的强度BYTE peBlue; //蓝色的强度BYTE peFlags;} PALETTEENTRY;成员peFlags说明了颜色表项的使用方法,在一般应用时为NULL,若读者对peFlags的详细说明感兴趣,可以查看Visual C++的联机帮助。

相关文档
最新文档