您的位置首页百科知识

代码中怎样把RGB颜色值转换成16进制?

代码中怎样把RGB颜色值转换成16进制?

rgb颜色格式是由3组0~255的数字构成,分别是红(Red)、绿(Green)、蓝(Blue)的色值。 转为16进制就是分别把红绿蓝三种颜色的色值转为十六进制,前面加个井号 例如: rgb(255,255,255),255的16进制为FF,所以结果就是#FFFFFF。

简单的移位和按位加: int r,g,b; int c; // TC 用 long int; // 如果次序是RRGGBB c = r << 16 | g << 8 | b; // 如果次序是BBGGRR c = b << 16 | g << 8 | r; --------------------------------- 例如: #include "stdio.h" int RGB(int r,int g,int b) { return r << 16 | g << 8 | b; } void main() { int r,g,b,c; r = 255; g=255; b=255; c =

MSDN中对RGB结构体的定义如下: The RGB macro is defined as follows. #define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | \ ((WORD) (g) << 8)) | \ (((DWORD) (BYTE) (b)) << 16))) 由此可见,一个DWORD体中的后三个字节分别是B,G,R;最前一个字节为零。 fun(BYTE R,BYTE G,BYTE B) { DWORD wValue; wValue = RGB(R,G,B); printf("%x", wValue); : : : //以下将DWORD转化为

string RGBConvert(int r,int g,int b) { char r_str,g_str,b_str; string result = "0x"; itoa(r,r_str,16); itoa(g,g_str,16); itoa(b,b_str,16); result + = string(r_str)+string(g_str)+string(b_str); return result; } 没有编译过,你自己调试下