【问题标题】:How can I convert an RGB input into a decimal color code?如何将 RGB 输入转换为十进制颜色代码?
【发布时间】: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*/

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

【问题讨论】:

    标签: math colors rgb color-codes


    【解决方案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))
      

      【讨论】: