Как я могу преобразовать вход 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))