|
•RGB. - Hruks, 27.02.2003 13:32:27 |
|
|
Эх, невнимательно ты утилитку мою смотрел, ну да ладно...
Цвет в 24 битах кодируется 3 байтами! Супер!
И каждый байт - о чудо - кодирует 256 градаций составляющих R, G или B.
Ну так вот, запишем для удобства в виде FFFFFF. В Delphi это будет $FFFFFF. Причём 00 соответствует минимальному уровню составляющей, а FF - максимальному. Так $FFFFFF кодирует самый яркий белый цвет. Отдельные цвета - это $FF0000, $00FF00, $0000FF. В разных случаях разные составляющие кодируют разные цвета, что для меня является загадкой, но тем не менее. Чаще всего $FF - красный, $FF00 - зелёный, $FF0000 - синий.
Ну и если лень писать в HEX, то делаем так: $0=0, $FF=255. Для того, чтобы закодировать цвет нужно R*1+G*256+B*256*256. Для раскадирования следует делить нацело, выделяя последовательно составляющие.
Ну и оттенки получают меняя соталяющие от 0 до $FF. Если все составляющие RGB имеют одинаковое значение, то это оттенок серого. Например $7F7F7F даёт серый половинной яркости.
Надеюсь я понятно тут описал? Если нет - то почтой вопросы!
Ну и напоследок: как в HLS переводить я не знаю (хотя и догадываюсь), знаю только как яркость. Хотя это действительно хорошая идея! И тогда при выборе цвета надо будет сменить оттенок. Но тем не менее я всё больше склоняюсь к тому, что нужно палитрами воротить :( И если уж красить спрайты, то не полностью, а только пятна! |
|
ответы :
-
re RGB. - Barloggg, 27.02.2003 15:38:38
|
| |