|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2010
Сообщений: 177
|
Параметры mask и color в BitmapData.getColorBoundsRect
Параметры mask и color в BitmapData.getColorBoundsRect
rect = objectsMap.getColorBoundsRect(mask, color , true); Подскажите, какие значения параметров задать для mask и color, если нужно получить пиксели не белого цвета (0xffffff). Т.е. фон у BitmapData белый, на нем расположен черный круг со ссблюренными краями (черный с разной интенсивностью), нужно получить Rectangle данного круга включая полупрозрачные пиксели. Сейчас сложно указать верные значения, т.к. не совсем понимаю параметр mask (в документации чрезмерно кратко написано). Заблюренный круг на белом фоне: |
|
|||||
Регистрация: Dec 2010
Сообщений: 177
|
Третьим параметром вы поставили false, т.е. выделить все, только не белый цвет.
И если можно, объясните плиз, что тут подразумевается под параметром mask? |
|
|||||
>>Третьий параметр может true?
может и тру, это смотря что нужно, false в данном случае заставит найти область с 'не белыми' пикселями mask просто битовая маска, не нужно анализировать какой-то из каналов - ставим ему в маске 0 |
|
|||||
Регистрация: Dec 2010
Сообщений: 177
|
Спасибо, на счет false, я выше поправился, но вот mask, например: 0x00990000 - (бардовый), то пиксели попадающие по красному каналу в диапазон 0-99, что с ними будет (вероятно эти пиксели не будут учитываться в Rectangle)?
|
|
|||||
Регистрация: Dec 2010
Сообщений: 177
|
Интересно, а если фон был бы не белый, а полностью прозрачный, то как бы выглядели mask и color?
|
|
|||||
>>Интересно, а если фон был бы не белый, а полностью прозрачный, то как бы выглядели mask и color?
ну раз уж так интересно, вот прямиком из хелпа для непрозрачных пикселей: getColorBoundsRect(0xFF000000, 0x00000000, true); |
|
|||||
Регистрация: Dec 2010
Сообщений: 177
|
>>ну раз уж так интересно, вот прямиком из хелпа для непрозрачных пикселей:
>>getColorBoundsRect(0xFF000000, 0x00000000, true); Все же в данном случае правильнее будет использовать false (также как и с белым фоном), т.к. мы выделяем все непрозрачные пиксели, а второй параметр 0x00000000 является прозрачным пикселем. Как я понял, битовую маску mask используют, для вкл./выкл. каналов подставляя в основном FF или 00 для канала или все же разные значения канала тоже часто используют (напр. 0x00990000)? |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы можете привести пример, как это использовать?)))
"Значения канала" задаются в color. А маска это маска, ее смысл только в том, чтобы не учитывать при поиске каналы, которые могут иметь любое значение. Например, чтобы искать белый цвет с любой альфой, мы маскируем альфу (не учитываем ее), а каналы учитываем — маска 0x00FFFFFF. Сначала установленный color будет преобразован в поисковый сэмпл: color & 0x00FFFFFF, затем при поиске значения проверяемых пикселов будут точно так же маскироваться, и какая бы альфа ни была, при сравнении с сэмплом она будет рассматриваться как нулевая, то есть никак не будет влиять на результат сравнения. Теоретически Вы наверное можете делать побитовый & каналов пикселей с 0х99, вот только практический смысл такой фильтрации мне крайне затруднительно представить, даже для определения цветов, которые пройдут такую проверку, мне понадобится написать тест — мозг с этим не сможет справиться)))
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 07:30. |
|
« Предыдущая тема | Следующая тема » |
|
|