如何把RGB颜色对应成一个数值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把RGB颜色对应成一个数值相关的知识,希望对你有一定的参考价值。

我们通常用的RGB颜色是用三个0-255之间的数来表示。请问怎么把RGB颜色表从下往上的颜色赋值到一个数字,比如颜色表最下面的一个颜色是1,再往上面一个颜色是1.1或者1.01。选择一个颜色对应一个数值。用于编程方面的颜色采集。膜拜高手。。。

颜色有多种表达方式,可以用颜色转换工具将rgb颜色转成十六进制颜色,这时颜色就会变成一个值。

1、打开百度搜索“RGB颜色值与十六进制颜色码转换工具”,在展开的搜索结果中找到颜色转换工具网页:

2、打开网页之后,在网页中输入需要转换的rgb颜色值,然后点击“转换”按钮即可完成转换:

3、这时rgb颜色就被转换成一个值了,用鼠标将转换后的值选中,右击被选中的值,在展开的菜单中点击“复制”按钮即可:

参考技术A 在VC里面有个宏可以将RGB值转成一个COLORREF的数据类型例如将红色转成COLORREF:COLORREF col = RGB(255,0,0); 参考技术B 不嫌复杂的话可以用变量来定义,数组更好,RGB颜色使用数字来定义,但也可以用英文标识来表示,比如colred 参考技术C 可以RGB = R << 4 + G << 2 + B;(RGB均为标准的0-255,很多Color类内部都这么表示) 参考技术D RGB每个原色都是8位,ARGB最高位也是8位,A代表透明度.color = R<<16 + G << 8 + B;或者color = (R<<16)|(G<<8)|B;如果还需要透明度color=color|(A<<24);

RGB转化int32数值

最近在做一个音箱的开发,其中涉及到了RGB转换int8-32数值,需求如红色部分:

技术图片

 

 

RGB转化无符号int32数值

 //RGB颜色转换成int32位的数值,每8位分别保存一个RGB值,从右往左,第一个八位保存B值,第二个八位保存G值,第三个八位保存R值,第四个八位全为0
 int converRgbToRgb(int r,int g,int b){
        int color = ((0xFF << 24)|(r << 16)|(g << 8)|b);
        return color;
 }

 技术图片

无符号int32转化RGB数值

 void convertUintToARGB(int color) {
        int r = (color >> 16) & 0xFF;
        int g = (color >> 8) & 0xFF;
        int b = (color >> 0) & 0xFF;
        System.out.println(r+"::"+g+"::"+b);

    }

 

以上是关于如何把RGB颜色对应成一个数值的主要内容,如果未能解决你的问题,请参考以下文章

求公式.十进制表示的RGB颜色换算成十进制表示的BGR颜色

js中如何把RGB颜色转换为16进制颜色

ARCGIS中如何把注记颜色从RGB改为CMYK

金色在电脑标准颜色十进制RGB数值是多少?

颜色渐变的RGB计算

opencv 红色的rgb分别多少