![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвет в 32-битном режиме [WinXP]
gagarin © (2004-05-03 10:59:00)Надо задать цвет RGB со значениями 255,5,5
Для 16 битного режима: 5+(5 shl 5)+(255 shl 11) - работает без проблем.
Для 32 битного - (5 shl 8)+(5 shl 16)+(255 shl 24) не работает!
Почему?
gagarin (2004-05-03 12:31:00) [1]2 MBo:
Вы правы, спасибо!
MBo (2004-05-03 12:17:00) [2](255 shl 11) заполнит 8 бит, а синему (или красному) цвету отводится только 5, т.е. максимальное значение составляющей - 31 (63 для зеленого)
gagarin (2004-05-03 12:04:00) [3]2 MBo:
Почему не правильно?
Для 16 битного режима (в моем случае, а не вообще):
стартовый бит для красного - 11
зеленого - 5
синего - 0
То есть формат 5-6-5
Для 32 битного режима я тут немного попутал, но уже исправил:
Стартовые биты соответственно 16,8,0 (24 - для альфа-канала).
То есть получается:
5+(5 shl 8)+(255 shl 16) - это уже работает!
В общем случае, конечно, надо определять формат перед использованием (RGB или BGR и т.д.)
MBo (2004-05-03 11:13:00) [4]>Для 16 битного режима: 5+(5 shl 5)+(255 shl 11) - работает без проблем.
А ведь неправильно
>Для 32 битного
5 or (5 shl 8) or (255 shl 16) (проследи только, чтобы R и B не были перепутаны)
или используй макрос RGB