矩阵,而位图就是采用位映像方法显示和存储的图像。
对于彩色图像,它的显示必须从三原色 RGB 的概念说起。众所周知,自然界中
的所有颜色都可以由红绿蓝(R、G、B)3 原色组合而成。针对三原色成分的多少,
可以人为的将每种颜色分成 0 到255 共 256 个等级。这样,根据红、绿、蓝各种不同
的组合,就能表示出 256*256*256(约 1600 万)种颜色。当一幅图中每个像素被赋予
不同的 RGB值时,就能呈现出五彩缤纷的颜色了,这就形成了彩色图像。
2.1.2 调色板
如果一幅图像的每个像素都用其 RGB 分量来表示,那么所有的图像文件都将变
的非常庞大,实际上的做法不完全是这样的,可以先来看一个简单的计算。对一幅
200*200 的 16 色图像,它共有 40 000 个像素,如果每一个像素都用R、G、B三个分
量表示,则一个像素需要3个字节,这样保存整个图像要用200*200*3 即 120 000 字
节。但是如果采用下面的方法,就能省很多字节。
对于 16 色图像,图中最多只有 16 种颜色,如果采用一个颜色表,表中的每一行
记录一种颜色的 R、G、B 值,这样当表示一个像素的颜色时,只需要指出该颜色是
在第几行,即该颜色在颜色表中的索引值便可以。例如,如果表的第0行为255,0,
0(红色),那么当某个像素为红色时,只需要标明0 即可。通过颜色索引表来表示图
像,16 种状态可以用 4 位(bit)表示,所以一个像素要用半个字节。整个图像要用
200*200*0.5 即 20 000 字节,在加上颜色表占用3*16=48 字节,也不过20 048字节。
这样一幅图像整个占用的字节数只是前面的1/6。其实这张 RGB表,就是通常所说的
调色板(Palette),或颜色查找表LUT(Look Up Table)。不仅仅是 Windows 位图,其
他许多图像文件格式,例如“.pcx”、“.tif”、“.gif”等都用到了调色板。
还有一种情况,即真彩色图像(又叫做 24 位图像)的颜色种类高达
256*256*256=16 777 216 种,也就是包含上述提到的R、G、B颜色表示方法中所有的颜色。真彩色图像是说它具有显示所有颜色的能力,即可以包含所有的颜色。通常,
在表示真彩色图像时,每个像素直接用 R、G、B 这 3 个分量字节表示,而不采用调
色板技术。原因很简单:如果使用调色板,表示一个像素颜色在调色板中的索引要用
24 位,这和直接用 R、G、B 这 3 个分量表示用的字节数一样,不但没有节省任何空
间,还要加上一个 256*256*256*3 个字节大的调色板。所以真彩色直接用 R、G、B
这 3 个分量表示。
2.1.3 色彩系统
前面介绍的 RGB 色彩系统是最常用的颜色系统,但在其他方面也会用到其他的
色彩系统,常见的有:
(1)CMY 色彩系统
CMY(Cyan,Megenta,Yellow)色彩系统也是一种常用的表示颜色的方式。计算机
屏幕的显示通常用 RGB 色彩系统,它是通过颜色的相加来产生其他颜色,这种做法
通常称为加色合成法。而在印刷工业上则通常用 CMY 色彩系统,它是通过颜色相减
来产生其他颜色的,所以称这种方式为减色合成法。 2.1 RGB CMY
(2)YIQ色彩系统
YIQ色彩系统通常被北美的电视系统所采用,这里Y不是指黄色,而是指颜色的
明视度,即亮度。其实 Y就是图像的灰度值,而I 和Q则是指色调,即描述图像色彩(3)YUV色彩系统
YUV色彩系统被欧洲的电视系统所采用,其中Y和上面的 YIQ色彩系统中的 Y
相同,都是指亮度。U和 V虽然也是指色调,但是和 I与Q的表达方式不完全相同。 VC++BMP图像的读写打印以及剪贴板操作(3):http://www.751com.cn/jisuanji/lunwen_8941.html