Как я могу преобразовать вход RGB в десятичный код цвета?

Скажем, у меня есть код цвета RGB со значениями 255 для красного, 255 для зеленого и 0 для синего. Как я могу получить десятичный код цвета из этих чисел, используя только математические операции? Таким образом, моя установка в псевдокоде будет выглядеть так:

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

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

Пожалуйста, помогите, я потратил целую вечность, пытаясь найти ответ, и хотел бы простой быстрый ответ:)

2 ответа

Решение
int result = (r * 256 * 256) + (g * 256) + b

Или, если ваш язык имеет оператор сдвига бит,

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

В 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))
Другие вопросы по тегам