M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


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