如何将RGB输入转换为十进制颜色代码?

时间:2014-08-20 12:41:19

标签: math colors rgb color-codes

假设我有一个rgb颜色代码,其中红色为255,绿色为255,蓝色为0。如何仅使用数学运算从这些数字中获取十进制颜色代码?所以我的设置,伪代码,看起来像:

int r = 255;
int g = 255;
int b = 0;

int result = /*decimal color code for yellow*/

请帮助,我已经花了很多年时间试图找到答案,并希望得到一个简单的快速答案:)

2 个答案:

答案 0 :(得分:3)

int result = (r * 256 * 256) + (g * 256) + b

或者,如果您的语言有位移操作符,

int result = (r << 16) + (g << 8) + b

答案 1 :(得分:1)

在Python中:

#!/usr/bin/python

# Return one 24-bit color value 
def rgbToColor(r, g, b):
    return (r << 16) + (g << 8) + b

# Convert 24-bit color value to RGB
def colorToRGB(c):
    r = c >> 16
    c -= r * 65536;
    g = c / 256
    c -= g * 256;
    b = c

    return [r, g, b]

print colorToRGB(rgbToColor(96, 128, 72))