关键词不能为空

当前您在: 主页 > 英语 >

RGB模式

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 03:15
tags:

-

2021年2月10日发(作者:goon)


RGB


,三原色光模式(英语:


RGB color model



,又称


RG B


颜色


模型或红绿蓝颜色模型,


是一种 加色模型,


将红



Red




绿


< br>Green




蓝(

< p>
Blue


)三原色的色光以不同的比例相加,


< /p>


以产生多种多样的色


光。


RGB


颜色模型的主要目的是在电子系统中检测,


表示和显示图像,

< p>
比如电视和电脑,但是在传统摄影中也有应用。在电子时代之前,基




人类对颜色的感知,


RGB


颜色模型已经有了坚实的理论支撑。


RGB


是一种依 赖于设备的颜色空间:


不同设备对特定


RGB

< br>值的检测和重现


都不一样,因为颜色物



质(荧光剂或者染料)和它们对红、绿和蓝


的单独响应水平随着制造商的不同而 不同,


甚至是同样的设备不同的


时间也不同。

< br>基本简介



概述




RGB


色彩模式(也



翻译为“红绿蓝”,比较少用)是工业界的一种


颜色标准,是通过对红


(R)


、绿


(G)


、蓝


(B)


三个颜色通道的变化以及


它们相 互之间的叠加来得到各式各样的



颜色的,

RGB


即是代表红、


绿、


蓝三个通 道的颜色,


这个标准几乎包括了人类视力所能感知的所


有颜色, 是目前运用最广的颜色系统之一。





RGB


色彩模式使用


RGB


模型为图像中每一个像素的


RGB


分量分配


一个


0~255


范 围内的强度值。例如:纯红色


R


值为


2 55



G


值为


0



B


值为


0


;灰色的


R



G



B


三个值相等(除了


0



255



;白色的


R



G

< p>


B


都为


255


;黑色的


R



G



B


都为


0



RGB


图像只使用三种颜色,就可

< p>
以使它们按照不同的比例混合,在屏幕上重现


16777216

< p>
种颜色




RGB


模式下,每种


RGB


成分都可使用从


0


(黑色)到


255


(白色)


的值。



例如,


亮红色使用


R



246



G



20



B



50




当所有三种成分值相等时,< /p>


产生灰色阴影。



当所有成分的值均为


255


时,结果是纯白色;当该值为


0


时,结果是纯黑色。




原理:



RGB


是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就


好像有红、绿、蓝三盏 灯,当它们的光相互叠合的时候,色彩相混,


而亮度却等于两者亮度之总和


(两盏灯的亮度嘛!




越 混合亮度越高,


即加法混合。





有色光可被无色光冲淡并变亮。


如蓝 色光与白光相遇,


结果是产


生更加明亮的浅蓝色光。

< p>
知道它的混合原理后,


在软件中设定颜色就


容易理 解了。






红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,


加法混合的特点:越叠加越明亮。





红、


绿、


蓝 三个颜色通道每种色各分为


255


阶亮度,


0


时“灯”


最弱——是关掉的,


而在


255


时“灯”最亮。

< p>
当三色数值相同时为无


色彩的灰度色,而三色都为


255


时为最亮的白色,都为


0


时为黑 色。




RGB


颜色称为加成色,


因为您通过将


R



G



B


添加在一起


(即


所有光线反射回眼 睛)可产生白色。



加成色用于照明光、电视和计


算机显示器。



例如,显示器通过红色、绿色和蓝色 荧光粉发射光线


产生颜色。绝大多数可视光谱都可表示为红、绿、蓝

(RGB)


三色光


在不同比例和强度上的混合。



这些颜色若发生重叠,则产生青、洋


红和黄。

< br>


语法:



( red



green



blu e )


参数


red


< br>integer


类型,指定颜色中的红色


分量强度,有效 值在


0



255


之间


green



integer< /p>


类型,指定颜色


中的绿色分量强度,有效值在

0



255


之间

< br>blue



integer


类型 ,指


定颜色中的蓝色分量强度,有效值在


0


255


之间返回值


Long


。函


数执行成功时返回由指定分量确定的颜色,

用长整数表示。


发生错误


时返回


- 1


。如果任何参数的值为


NULL


,< /p>


RGB()


函数返回


NULL

< p>





用法


RGB()


函数使用下述公式计算表示颜色的长 整数:


65536 *


Red+ 256 * Green+ Blue


其中,


Blue


代表蓝色分量 ,


Green


代表绿色


分量,


Red


代表红色分量。各分量中,数值越小,亮度越低,数值越


大,亮度越高。例



如,


RGB ( 0



0



0 )


为黑色(亮度最低)



RGB


( 255



255



255 )


为白色(亮度最高)




GRB


格式:




由于网页


(WEB)


是基于计算机浏览器开发的媒体,所以颜色以光学


颜色


RGB


(红、绿、蓝)为主。



网页颜 色是以


16


进制代码表示,一


般格式为


#ZYZABC


(字母用数字代替



)如黑色是三个颜色为


0


,在


网页代码便是:


#000000



当颜色代码为


#AABB11


时,

< br>可以简写为


#AB1


表示,如


# 135



#113355


表示同样的颜 色。





各 种


RGB


格式:




RGB1



RGB4



RGB8


都是调色板类型的


RGB


格式,在描述这些媒体


类型的格 式细节时,通常会在


BITMAPINFOHEADER


数据结 构后面跟着


一个调色板


(定义一系列颜色)


它们的图像数据并



不是真正的 颜色


值,而是当前像素颜色值在调色板中的索引。以


RGB1< /p>



2


色位图)为


例,


比如它的调色板中定义的两种颜色值依次为


0x00000 0


(黑色)




0xFFFFFF


(白色)


,那么图像数据

< br>?(每个像素用


1



表示)表示 对应各像素的颜色为:黑黑白白黑白黑白黑白白白?





¨


RGB565

< br>使用


16


位表示一个像素,这


1 6


位中的


5


位用于

R



6


位用于

G



5


位用于

B


。程序中通常使用一个字(


WORD

,一个字等于


两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意< /p>


义如下:





高字节



低字节





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




可以组合使用屏蔽字和移位操作来 得到


RGB


各分量的值:





#define RGB565_MASK_RED 0xF800




#define RGB565_MASK_GREEN 0x07E0




#define RGB565_MASK_BLUE 0x001F




R = (wPixel & RGB565_MASK_RED) >> 11



//


取值范围


0-31




G = (wPixel & RGB565_MASK_GREEN) >> 5



//


取值范围


0-63




B = wPixel & RGB565_MASK_BLUE



//


取值范围


0-31




#define


RGB(r



g



b)


(unsigned


int)(


(r/0x08


<<


11)


|


(g/0x08


<< 6) | b/0x08 )




#define


RGB(r



g



b)


(unsigned


int)(


(r/0x08


<<


10)


|


(g/0x08


<< 5) | b/0x08 )




该代码可以解 决


24


位与


16


位相互转换的问题





¨


RGB555


是另一种

< p>
16


位的


RGB


格式,< /p>


RGB


分量都用


5


位表示


(剩


下的


1

< br>位不用)


。使用一个字读出一个像素后,这个字的各个位意义

如下:



高字节



低字节





X R R R R G G G G G B B B B B


X


表示不用,可以忽略)





可以组合使用屏蔽字和移位操作来 得到


RGB


各分量的值:





#define RGB555_MASK_RED 0x7C00




#define RGB555_MASK_GREEN 0x03E0




#define RGB555_MASK_BLUE 0x001F




R = (wPixel & RGB555_MASK_RED) >> 10



//


取值范围


0-31




G = (wPixel & RGB555_MASK_GREEN) >> 5



//


取值范围


0-31




B = wPixel & RGB555_MASK_BLUE



//


取值范围


0-31




¨ RGB24


使用


24


位来表示一个像素,


RGB


分量都用


8


位表示,


取值范围为


0-255



注意在内存中


RGB


各分量的排列顺序为:


BGR


BGR


BGR?。通常可以使用


RG BTRIPLE


数据结构来操作一个像素,它的定


义为:





typedef struct tagRGBTRIPLE {




BYTE rgbtBlue



//


蓝色分量





BYTE rgbtGreen



//


绿色分量





BYTE rgbtRed



//


红色分量





} RGBTRIPLE






¨ RGB32

< br>使用


32


位来表示一个像素,


R GB


分量各用去


8


位,剩


下的


8


位用作


Alpha< /p>


通道或者不用。



ARGB32


就是带


Alpha


通道的


RGB32




注意在内存中


RGB


各分量的排列顺序为:


BGRA


BGRA


BGRA?。


通常可以使用


RGBQUAD


数据结构来操作一个像素,它的定义为:





typedef struct tagRGBQUAD {




BYTE rgbBlue



//


蓝色分量





BYTE rgbGreen



//


绿色分量





BYTE rgbRed



//


红色分量





BYTE rgbReserved



//


保留字节(用作


Alpha


通道 或忽略)





} RGBQUAD




主要算法




public void paint(Graphics g)




ect(0



0



370



420)






or()






ne(100



100



355



100)




ne(100



100



100



355)




or()






al(350



95



10



10)






or(a)






al(45



145



10



10)






or()



-


-


-


-


-


-


-


-



本文更新与2021-02-10 03:15,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/625975.html

RGB模式的相关文章