调色板

调色板,它的功能在于缓解位图文件存储空间(显存或系统内存)过大的问题。

彩色查找表。。。在帧缓存与显示器的数模转换器之间增加一个查色表,对显示的颜色进行索引

 这样,在帧缓存单元的位数不增加的情况下,具有大范围内挑选颜色的能力。

彩色查找表是一个一维线形表,其每一项内容对应一种颜色。此时帧缓存中的每个单元存储的不再是颜色值,而是对应于某一像素颜色的地址。彩色表的长度由帧缓存每个存储单元的位数决定。这确定一幅画面能同时显示的颜色种类数。彩色表的元素位长由帧缓存每个存储单元的基色数决定。这决定显示器可选择显示的颜色种类数

颜色表中 的个数有 biBitCount 来确定 。 当 biBitCount=1,4,8 时,分别有 2,16,256 个颜色 ; 当 biBitCount=24 时,没有颜色表项。
在windows中每个颜色是 b g r a 四个字节保存,a代表透明度,如果是1位位图,那么颜色表一共站八个字节,
如果是4位位图,颜色表站64个字节,如果是8位位图,需要表示256中颜色,每种颜色站四个字节,所以颜色表一共站1024个字节。
256色的时候,windows中,位图数据的大小就是0-255,代表着调色板中的数据,每次读八个为就是一个像素信息,其他位图类似。
彩色查找表是一个一维线形表,其每一项内容对应一种颜色。此时帧缓存中的每个单元存储的不再是颜色值,而是对应于某一像素颜色的地址。
彩色表的长度由帧缓存每个存储单元的位数决定。
这确定一幅画面能同时显示的颜色种类数。彩色表的元素位长由帧缓存每个存储单元的基色数决定。这决定显示器可选择显示的颜色种类数
常见的位图有单色(实际是1位图,,2的一次方为2,,因此它是2色图,,黑白色)、16色(实际是4位图,,2的4次方16,,因此它能表示16种颜色)、
256色(实际是8位图,,这种位图的每个像素都用8位刚好一个字节来表示,2的8次方为256,因此它能表示256种颜色也即256种RGB的组合也即这种位图的色深)、
16位(2的16次方=65536)及24位(2的24次方=1677万种颜色和256级灰度值
色深差不了很多,所以效果其实与16位图不相差几多)真彩色5种,对于前三者(即不大于256色)都可以调色板方式进行存储,
而对16位及24位真彩色以调色板进行存储是不划算的,它们直接按照R,G,B分量进行存储。

1B(byte,字节)= 8 bit;
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,)=1024KB= 2^20 B;


typedef struct tagRGBQUAD {
  BYTE    rgbBlue;
  BYTE    rgbGreen;
  BYTE    rgbRed;
  BYTE    rgbReserved;
} RGBQUAD;

COLORREF RGB(
  BYTE byRed,    // red component of color
  BYTE byGreen,  // green component of color
  BYTE byBlue    // blue component of color
);



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值