![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2008
Сообщений: 15
|
Доброго Дня!
Не могу справиться с задачей, помогите пожалуйста: 1. Есть прозрачная BitmapData; 2. Делаю threshold, добавляю квадрат, например, получаю количество перекрашеных пикслелей. Допустим в прозрачной BitmapData появился черный квадрат. 3. Делаю такой же threshold, и не должно ничего перекрасится и функция вернет мне 0. Таким образом я знаю что тут уже были перекрашены пикселы, если нет то сколько докрасилось. 4. Не могу понять - как же этот порог срабатывает? - что значит mask(параметр функции threshold) - как вообще работает - (pixelValue & mask)? В общем не смог настроить так этот процесс... ![]() Спасибо заранее! Я ищу простой способ считать закрашиваемые пикселы(помимо квадратов нужно использовать круги), конечно в крайнем случае в ручную сделаю... |
|
|||||
|
Modus ponens
|
Маска так называется потому, что действует так:
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 |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 15
|
Спасибо большое за Ваш ответ, теперь я знаю как работает определение порога в threshold ...
То что я хотел узнать от threshold - это то что она возвращает количество перекрашенных пикселей, соответственно не нужно считать это вручную. |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|