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

Posted

技术标签:

【中文标题】如何将 RGB 输入转换为十进制颜色代码?【英文标题】:How can I convert an RGB input into a decimal color code? 【发布时间】:2014-10-13 19:51:38 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:
int result = (r * 256 * 256) + (g * 256) + b

或者,如果你的语言有移位运算符,

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

【讨论】:

【参考方案2】:

在 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))

【讨论】:

以上是关于如何将 RGB 输入转换为十进制颜色代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串颜色转换为其十六进制代码或 RGB 值?

RGB 颜色代码转换

如何将 RGB 转换为 HTML 颜色?

颜色字符串转换(正则)

c# winform 如何实现16进制颜色值的转换

详细请教:关于十进制RGB颜色值转换十六进制颜色值的算法