Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.37.68] |
|
Сообщ.
#1
,
|
|
|
заранее говорю, что трудно было понять, куда запостить тему, поэтому она здесь - если что, извиняйте.
работаю с png файлом. в нем цвета хранятся в формате ARB1555, т.е. на каждую компоненту цвета по 5 бит + 1 бит на альфа канал = 16 бит так вот, при переводе этого цвета в формат RBG, где на каждую компоненту цвета по 8 бит, получается недоразумение. недаразумение вот в чем. допустим у нас цвет, хранящийся в ARGB1555, имеет представление 0хFFFF = 1 11111 11111 11111, альфа крас. зел. син. т.е. цвет черный и его видно, т.к. альфа-бит 1. если перевести в 24 битовое представление, то получится,что все компоненты цвета имеют двоичное представление 00011111. но это же не черный цвет! а какой-то зеленый скорее. что тут делать? подскажите, пожалуйста. заранее благодарен. |
Сообщ.
#2
,
|
|
|
Дело в том, что в такой модели на каждый канал есть всего 32 градации, а не 256 как в RGB. Поэтому их надо сначала приводить, ведь 31 (полное значение яркости для png) в RGB не будет даже половинной яркостью.
x*255/31=y где x - яркость канала в PNG, а y - яркость канала в RGB. Добавлено в : Если хош, могу на асме пример накалякать... |
Сообщ.
#3
,
|
|
|
спасибо. я не под windows пишу. на asm не надо. спасибо еще раз. все объяснил доходчиво.
|