来自当知百科
跳转到: 导航搜索

目录

漫画RGB

  日本最新漫画,于2010年6月10日汉化完毕第一话。
RGB

  类型:搞笑喜剧

  地区:日本

  原作:シロガネヒナ

  状态:连载

基本简介

简介

  RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色。

  在 RGB 模式下,每种 RGB 成分都可使用从 0(黑色)到 255(白色)的值。 例如,亮红色使用 R 值 255、G 值 0和 B 值 0。 当所有三种成分值相等时,产生灰色阴影。 当所有成分的值均为 255 时,结果是纯白色;当该值为 0时,结果是纯黑色。

应用

  目前的显示器大都是采用了RGB颜色标准,在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,目前的电脑一般都能显示32位颜色,约有一百万种以上的颜色。

  在led 领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩像素。随着这一技术的不断成熟,led显示技术会给人们带来更加丰富真实的色彩感受。

原理

  RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。

  有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在软件中设定颜色就容易理解了。 

  红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。

  红、绿、蓝三个颜色通道每种色各分为255阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色数值相同时为无色彩的灰度色,而三色都为255时为最亮的白色,都为0时为黑色。 

  RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、洋红和黄。

RGB语法

  ( red,green,blue ) 

  参数red:integer类型,指定颜色中的红色分量强度,有效值在0到255之间green:integer类型,指定颜色中的绿色分量强度,有效值在0到255之间blue:integer类型,指定颜色中的蓝色分量强度,有效值在0到255之间返回值Long。函数执行成功时返回由指定分量确定的颜色,用长整数表示。发生错误时返回-1。如果任何参数的值为NULL,RGB()函数返回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表示同样的颜色。

格式简介

  RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色),那么图像数据001101010111…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。

RGB565

  ¨RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于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是另一种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各分量的排列顺序为:BGRBGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:

  typedef struct tagRGBTRIPLE {

  BYTE rgbtBlue; // 蓝色分量

  BYTE rgbtGreen; // 绿色分量

  BYTE rgbtRed; // 红色分量

  } RGBTRIPLE;

RGB32

  ¨RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRABGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:

  typedef struct tagRGBQUAD {

  BYTE rgbBlue; // 蓝色分量

  BYTE rgbGreen; // 绿色分量

  BYTE rgbRed; // 红色分量

  BYTE rgbReserved; // 保留字节(用作Alpha通道或忽略)

  } RGBQUAD。

主要算法

  public void paint(Graphics g)

  {

  h.clearRect(0, 0, 370, 420);

  h.setColor(Color.black);

  h.drawLine(100, 100, 355, 100);

  h.drawLine(100, 100, 100, 355);

  h.drawLine(100, 355, 355, 355);

  h.drawLine(355, 100, 355, 355);

  h.drawLine(100, 100, 50, 150);

  h.drawLine(355, 100, 305, 150);

  h.drawLine(355, 355, 305, 405);

  h.drawLine(100, 355, 50, 405);

  h.drawLine(50, 150, 50, 405);

  h.drawLine(50, 150, 305, 150);

  h.drawLine(305, 150, 305, 405);

  h.drawLine(50, 405, 305, 405);

  h.setColor(Color.red);

  h.fillOval(45, 400, 10, 10);

  h.setColor(Color.green);

  h.fillOval(350, 350, 10, 10);

  h.setColor(Color.blue);

  h.fillOval(95, 95, 10, 10);

  h.setColor(Color.cyan);

  h.fillOval(350, 95, 10, 10);

  h.setColor(Color.magenta);

  h.fillOval(45, 145, 10, 10);

  h.setColor(Color.yellow);

  h.fillOval(300, 400, 10, 10);

  h.setColor(Color.black);

  h.fillOval(95, 350, 10, 10);

  h.drawOval(300, 145, 10, 10);

  h.setColor(c);

  int i = (90 + gc) - (int)(0.19600000000000001D * (double)rc);

  int j = (345 - bc) + (int)(0.19600000000000001D * (double)rc);

  h.fillRect(i, j, 20, 20);

  h.setColor(Color.black);

  h.drawRect(i, j, 20, 20);

  g.drawImage(offimg, 0, 0, this);

  g.setColor(Color.red);

  g.setFont(fonsig);

  g.drawString

  }

  RGB信号获取:

  【RGB信号获取简介】

  VGA采集卡/RGB信号采集卡可采集VGA信号、标准和非标准RGB分量等信号源,适用于高精度、高分辨率的图像采集、高清VGA视频图像的存储、编码传输等要求。

  【技术特点与指标】

  ● 采集计算机VGA输出屏幕、各种非标准相机的输出采集设备、标准或非标的RGB分量信号

  ● 采集的信号种类按照接口可为复合非标准模拟信号,绿路带同步的/行场分离的RGB分量信号

  ● 高分辨率高帧率:1280×1024/40帧;1024×768/60帧;800×600/120帧;

  ● 最高点频可达170M

  ● 支持硬件任意开窗,二级缩放,硬件翻转

  ● 有类似内存映射的功能,多个应用程序/进程可以共享其采集的图像数据;

  ● 信号接入丢失感知,无信号不蓝屏、死机

  ● 硬件控制帧率流量,可在实际使用中和其它采集卡配合,更有效提高PCI带宽的利用

  ● 支持RGB32、RGB24、YUV422、RGB8等采集格式

  ●全自动行场频检测:具有全自动行场频自适应能力和信号自检测能力,信源端信号的变化不需要用户调节,完全适合无人值守应用

  ● 编程完全使用微软提供DirectShow /VFW接口,也可提供基于VC、VB、Delphi等的二次开发包演示程序和源代码,

  ●可使用微软的AmCap, VidCap, Windows Media Encode, Window MovieMaker、第三方提供的LabView等应用软件

  【开发工具】

  ● 操作系统支持:Windows 2000、XP、Vista。

  ● SDK支持:VC、VB、Delphi,提供演示程序及演示程序源代码!

  ● 驱动支持:DirectX、OpenCV、LabView、

RGB色彩空间

  印刷技术的当中的RGB色彩空间究竟是什么?很多人都会不解地问。其实RGB色彩空间并不是什么神秘的东西,RGB色彩空间主要是指加色法当中的三度色彩空间,通过使用不同强度的三原色,红、绿、蓝色的光线来组合成不同的色彩,就好像说,如果平时我们利用扫描仪从印刷品上扫描图像,原理就是扫描仪阅读了图像上面的红、绿、蓝三色的光亮度,然后把这些量度转换成数据,当显示器收到这些数据的时候就可以按照程序设定转换成制定的红、绿、蓝三原色,其实他们当中是有很多不同颜色的小色块的,由于这些色块的像素非常非常的小而且密密麻麻的,所以我们眼镜没有办法分辨出来。

个人工具
名字空间

变换
查看
操作
导航
工具箱