bitmap色彩方式特指黑白图像,位图的色彩比矢量图丰富
有些问题,可能你还没来得及真正理解,今天的话题就是其中之一。
在Windows中,很多和位图相关的结构都有一个成员叫做“平面”。例如,BITMAPINFOHEADER结构中有一个biPlanes成员,它必须设置为1。位图结构中有一个bmPlanes成员。那么,这个东西有什么用呢?
请听并为翻译翻译。
EGA(增强型图形适配器)图形驱动程序支持16位颜色。与只能支持4种颜色的CGA(彩色图形适配器)相比,这是一个巨大的进步(没错)。
如果系统支持16色的色彩空间,每个像素需要4位来表示。你可能会认为显卡内存的每一个字节都是用两个像素来表示的,一个四位在视频区的底部,另一个四位在顶部。但是由于技术原因,显存的结构并没有那么简单。
在实际设计中,像素的位数据不是一个接一个放置的,颜色通道被拆分成独立的单色位图。换句话说,像素以另一种方式切片。如下图所示:
上图中,假设我们要显示8个像素,它们的颜色值分别为{0,3,5,6,8 B,D,E}。
图形卡的内存不是以这种顺序存储半字节,而是将半字节分成它们的组成位,并将相同位置的所有位聚集在一起。也就是说,采用横向阅读,而不是向下阅读。
在16种颜色的默认调色板中,颜色由系统根据某些规则分配,例如蓝色通道的位0、绿色通道的位1、红色通道的位2和强度通道的位4。按照这个规律,这四位可以解释为:强度面、红色面、绿色面、蓝色面。对于最后三个平面,你可以想象每一个平面都代表了只有相应的电子枪发射时你会看到的景象。
因为这是EGA的本机颜色格式,所以需要一种方法在位图结构中表达这种颜色格式,以便Windows可以表示与设备相关的位图。
因此,平面彩色格式诞生了。对于具有16个颜色平面的位图,平面的数量是4,每个像素的位数是1。
总结一下现代的16位彩色/32位彩色显示系统,不用太担心,因为永远只有一个彩色平面,所以简单地设置为1。
所以,就当是“兼容存在”吧。
最后,Raymond Chen的《The Old New Thing》博客是我最喜欢的博客之一。里面包含了很多关于Windows的小知识,对于广大Windows平台开发人员来说确实很有帮助。
本文来自:《What is the purpose of the bmPlanes member of the BITMAP structure?》
版权归作者所有:原创作品来自博主漫漫发展路,转载授权请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。