RGB颜色,代码和十六进制

更新时间:2023-06-18 08:27:28 阅读: 评论:0

RGB色彩模式(也翻译为红绿蓝,比较少用)是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
RGB色彩模式使用RGB模型为图像中每一个像素RGB分量分配一个0~255范围内的强度值。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色。
 
安装打印机驱动
RGB 模式下,每种 RGB 成分都可使用从 0(黑色)到 255(白色)的值。 例如,亮红色使用 R 255G 0 B 0 当所有三种成分值相等时,产生灰色阴影。 当所有成分的值均为 255 时,结果是纯白色;当该值为 0 时,结果是纯黑色。
应用
  目前的显示器大都是采用了RGB颜色标准,在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,目前的电脑一般都能显示32位颜色,约有一百万种以上的颜色。
  在led 领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩像素。 随着这一技术的不断成熟,led显示技术会给人们带来更加丰富真实的色彩感受。
原理
  RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。
 
有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在软件中设定颜色就容易理解了。 
  红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。
  红、绿、蓝三个颜色通道每种色各分为255阶亮度,在0最弱——是关掉的,而在255名人英语演讲时最亮。当三色数值相同时为无色彩的灰度色,而三色都为紫薯的吃法255时为最亮的白色,都为0时为黑色。 
  RGB 颜色称为加成色,因为您通过将 RG B 添加在一起(即所有光线反射回眼睛)可产生白色。 加成色用于照明光、电视计算机显示器。 例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。 这些颜色若发生重叠,则产生青、洋红和黄。
编辑本段RGB语法
  ( redgreenblue ) 
  参数redinteger类型,指定颜色中的红色分量强度,有效值在0255之间;greeninteger类型,指定颜色中的绿色分量强度,有效值在0255之间;blueinteger类型,指定颜色中的蓝色分量强度,有效值在0255之间返回值Long函数执行成功时返回由指定分量确定的颜色,用长整数表示。发生错误时返回-1。如果任何参数的值为NULLRGB()函数返回NULL
  用法RGB()函数使用下述公式计算表示颜色的长整数:65536 *Blue + 256 * Green+Red其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各分量中,数值越小,亮度越低,数值越大,亮度越高。
编辑本段RGB格式
  对一种颜色进行编码的方法统称为颜色空间色域。用最简单的话说,世界上任何一种颜色的颜色空间都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成YUV 颜色
空同,以维持兼容,再根据需要换回RGB格式,以便在电脑显示器上显示彩色图形。 
  由于网页(WEB)是基于计算机浏览器开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。 网页颜色是以16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 ;如黑色,在网页代码中便是:#000000(css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135#113355表示同样的颜色。
格式简介
  RGB1RGB4RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB12位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色),那么图像数据001101010111…(每个像素用史江1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白
RGB565
  RGB565使用16位表示一个像素,这16位中的5位用于R6位用于G5位用于秘书英文B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:
  高字节 低字节
  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
  RGB555婴儿6个月辅食是另一种16位的RGB格式,RGB分量都用5位表示(剩下的真心话大冒险的问题1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
  高字节 低字节
  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
  RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255角蟾。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
  typedef struct tagRGBTRIPLE {
  BYTE rgbtBlue; // 蓝色分量
  BYTE rgbtGreen; // 绿色分量
  BYTE rgbtRed; // 红色分量
  } RGBTRIPLE;
RGB32
  RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:

本文发布于:2023-06-18 08:27:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/981892.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:颜色   表示   分量   像素   产生   使用   蓝色   显示
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图