Я уже изучил рабочий механизм RGBA, поэтому понял, что шестнадцатеричные числа, принадлежащие разным цветам, могут быть превращены в простые целые числа. Это означает, что я могу хранить цвета в целых числах, хотя некоторые из них довольно большие.Получение цвета, относящегося к данному целому числу
Мой вопрос в том, как я могу получить цвет, который принадлежит целому числу, которое я передаю программе?
EDIT: конечно, я забыл упомянуть, что я тоже использую Allegro, но я новичок в этом ... есть ли какие-либо функции того, что это может сделать?
Да, я использую Allegro 5. =) , но вы все еще не понимаете, что я имею в виду: я хочу сохранить цвет с ОДНОМ числом вместо ТРИ, потому что обработка трех чисел более рискованна, чем только одна для каждого элемента. Но, конечно, спасибо за помощь! –
@ ZoltánSchmidt, все процедуры Allegro 5 требуют использования структуры 'ALLEGRO_COLOR', поэтому сохранение их в виде одиночных целых чисел просто не имеет смысла. Тем не менее простейшим целым представлением RGB будет 'int c = ((r << 16) | (g << 8) | b)', где каждый компонент равен 0-255. Чтобы извлечь, сдвиньте другое направление и маску: 'int g = (c >> 8) & 0xff' – Matthew
О, я вижу. Спасибо! –