
23.09.2009, 01:10
|
|
|
Modus ponens
модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
|
Маска так называется потому, что действует так:
1 & 1 = 1
0 & 0 = 0
1 & 0 = 0
0 & 1 = 0
т. е. она "пропускает" только биты равные единице в маске и в маскируемом значении, "маскируя", т.е. обнуляя при этом несоответствующие биты. Я думаю, что правельнее было бы перевести как "трафарет", или "фильтр"...
Например, вы хотите замаскировать красный цвет, тогда маска должна быть такая:
0хFFFF т.как красный цвет это все значения от 0x10000 и до 0xFF0000. Т.е. если вы попробуете любое значение в пределах
[0x10000 ----> 0xFF0000] & 0хFFFF то получите 0, т.как в маскируемом цвете есть только красная компонента.
Но если в цвете есть, например, хоть 1 "зеленый" бит 0x10100, то маска вам его и оставит, убрав "красный" бит.
Единственное, я не понял вопроса как вы с помощью этой функции хотите что-то выяснить о закрашиваемой битмапдате - эта функция не сообщает что и на сколько перекрасилось...
__________________
Hell is the possibility of sanity
|