RGB模型

RGB模型

 

    RGB模型是什么在这里就不介绍了,主要来谈谈RGB的格式.

    RGB是从颜色发光的原理来设计定的,RGB模型分成了三个颜色通道(R)、绿(G)、蓝(B)RGB色彩模式使用RGB模型为图像中每一个像素RGB分量分配一个0~255范围内的强度值。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色,每个颜色通道每种色各分255阶亮度,在0最弱——是关掉的,而在255最亮

RGB格式包括RGB1,RGB2,RGB4,RGB8,RGB16,RGB24,RGB32,RGB36.在其中,RGB1RGB2,RGB4,RGB8为调色板类型的RGB格式(如RGB111,RGB222,RGB233等).RGB16为高彩色Hi Color(如RGB444,RGB555,RGB565,RGB24为真彩色TRUE Color(如RGB888等),RGB32则带Aphal通道(RGBA(注:RGBX等是指一个像素用多少位表示,比如RGB1它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色),那么图像数据001101010111…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…),另外类似RGB -565这些是指RB对调。

 

先看下比较少位的RGB。单个像素位小于或等于8位的,因为不能完全表示所有的RGB颜色,所以在其中使用了调色板这个概念。那什么是调色板呢?

WINDOWS系统为例,不是真彩色的位图都含有颜色索引表,在显示时可以采用调色板技术,将文件中自带的颜色显示出来。调色板是一组独立于存储各个像素颜色编号存储区的视频存储区。为了确定每个颜色编号所对应的真实颜色,显示硬件要参考调色板的颜色值。在调色板颜色系统中,每一幅图像都有自己的调色板,显示时必须将自己的调色板载入系统调色板中,实现调色板。下图为一个调色板例子(16色位)

 

0…15为调色板的index

 

      对于Hi ColorRGB1616位的RGB像素点数据还是直接的颜色索引值,并非RGB的颜色值,因为带有64K色,如果用调色板则会导致占据的空间过大, 所以不使用调色板,而是通过转换算法,如RGB444,RGB565,RGB555等。

      RGB565使用16位表示一个像素,这16位中的5位用于R6位用于G5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:

  高字节 低字节

  R R R R R G G G G G G B B B B B

  RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:

  高字节 低字节

X R R R R R G G G G G B B B B B X表示不用,可以忽略)

颜色索引值到RGB值的转换,索引转换成RGB的基本原理,首先,对于RGB三值,由FixedPalette指定其每个位所占的位数,如为444则各4. FixedPalette中指定能表示的RGB的范围分别为(RGB)1111/1111/1111,即16(R)/16(G)/16(B). 则当索引值Index444时,则是RGB各值索引最大的时候,由此即可分析,R/G/B三值要表示的颜色范围是0x00-0xff,为了让有限的0-16的索引来表示0x00-0xff这些颜色值, 那么当然只能是跳隔着来表示,拿R来说,最好是取值为(17*017*117*217*3...17*15=248),如此的话,才能差不多在有限的16个索引值下将0xff种颜色最大程度的涵盖到(比较平均),但实际你可以自己控制索引到RGB颜色值的转换算法,但一定要合理,尽可能涵盖全面。 同理,对于FixedPalette555时,则R取值最好为(8*08*18*2

8*3...8*31=243)...

同理,对于FixedPalette565时,则B取值最好为(4*04*14*2

4*3...4*63=252)

下面为一个例子:RGB444

 

 

 

RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…

 

RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值