如何把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颜色对应成一个数值的主要内容,如果未能解决你的问题,请参考以下文章