看了一些专家说的写博客的好处,今晚开始试着学习写博客,记录下自己的成长过程。
这里简单介绍下位图和调色板
说到显示屏我们就会提到像素,就是很小的点,这些点就填满了我们的显示屏。有些显示器是位映像设备,它通过电子枪每次从左到右扫描一行为每一个像素着色,然后从上到下扫描N多行,这样就扫完了整个屏幕。但这样会出现闪烁,所以每秒要扫描上述过程几十次。比如我们说的屏幕的分辨率为640*480,频率为70Hz就是说每行要扫描640个像素,一共480行,每秒重复扫描屏幕70次。
上面提到位映像就是指一个二维的像素矩阵,而位图就是采用位映像的方法来显示和储存的图像。对于一般的位图,我们放大N倍后便可以看到它其实是油一个个很小的带颜色的矩形小块构成的,这些小块就是所谓的像素,如果我们轻易的放大一幅图像就能看到这些小块的话我们就说这图片的像素太低了。
对于自然界这么丰富的颜色我们可以通过RGB这三个量的组合来构建颜色。现在这三个量我们都用一个字节来表示,所以一般每个分量都有256个值,即有256*256*256约1600万种表示(呵呵,我手机屏幕就是这么多像素),这么多的颜色其实对我们人类的眼睛来说够丰富了。
有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R、G、B三个分量表示。因为每个分量有256个级别,要用8位(bit),即一个字节(byte)来表示,所以每个象素需要用3个字节。整个图象要用200×200×3,约120k字节,可不是一个小数目呀!如果我们用下面的方法,就能省的多。
因为是一个16色图,也就是说这幅图中最多只有16种颜色,我们可以用一个表:表中的每一行记录一种颜色的R、G、B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值。举个例子,如果表的第0行为255,0,0(红色),那么当某个象素为红色时,只需要标明0即可。
让我们再来计算一下:16种状态可以用4位(bit)表示,所以一个象素要用半个字节。整个图象要用200×200×0.5,约20k字节,再加上表占用的字节为3×16=48字节.整个占用的字节数约为前面的1/6,省很多吧?
这张R、G、B的表,就是我们常说的调色板(Palette),另一种叫法是颜色查找表LUT(Look Up Table),似乎更确切一些。Windows位图中便用到了调色板技术。其实不光是Windows位图,许多图象文件格式如pcx、tif、gif等都用到了。所以很好地掌握调色板的概念是十分有用的。