Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.01.2013, 17:08
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 1  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
По умолчанию Параметры mask и color в BitmapData.getColorBoundsRect

Параметры mask и color в BitmapData.getColorBoundsRect

rect = objectsMap.getColorBoundsRect(mask, color , true);
Подскажите, какие значения параметров задать для mask и color, если нужно получить пиксели не белого цвета (0xffffff).

Т.е. фон у BitmapData белый, на нем расположен черный круг со ссблюренными краями (черный с разной интенсивностью), нужно получить Rectangle данного круга включая полупрозрачные пиксели.

Сейчас сложно указать верные значения, т.к. не совсем понимаю параметр mask (в документации чрезмерно кратко написано).

Заблюренный круг на белом фоне:


Старый 04.01.2013, 18:46
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
objectsMap.getColorBoundsRect(0x00FFFFFF, 0xFFFFFF, false);

Старый 04.01.2013, 18:58
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 3  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
Третьим параметром вы поставили false, т.е. выделить все, только не белый цвет.

И если можно, объясните плиз, что тут подразумевается под параметром mask?

Старый 04.01.2013, 19:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Третьий параметр может true?
может и тру, это смотря что нужно, false в данном случае заставит найти область с 'не белыми' пикселями
mask просто битовая маска, не нужно анализировать какой-то из каналов - ставим ему в маске 0

Старый 04.01.2013, 19:26
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 5  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
Спасибо, на счет false, я выше поправился, но вот mask, например: 0x00990000 - (бардовый), то пиксели попадающие по красному каналу в диапазон 0-99, что с ними будет (вероятно эти пиксели не будут учитываться в Rectangle)?

Старый 04.01.2013, 19:38
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
я бы не стал связываться с 0x00990000
x99 это 10011001, хз какого результата ждать от такой маски

Старый 04.01.2013, 20:21
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 7  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
Интересно, а если фон был бы не белый, а полностью прозрачный, то как бы выглядели mask и color?

Старый 04.01.2013, 20:52
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Интересно, а если фон был бы не белый, а полностью прозрачный, то как бы выглядели mask и color?
ну раз уж так интересно, вот прямиком из хелпа для непрозрачных пикселей:
getColorBoundsRect(0xFF000000, 0x00000000, true);

Старый 05.01.2013, 10:16
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 9  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
>>ну раз уж так интересно, вот прямиком из хелпа для непрозрачных пикселей:
>>getColorBoundsRect(0xFF000000, 0x00000000, true);
Все же в данном случае правильнее будет использовать false (также как и с белым фоном),
т.к. мы выделяем все непрозрачные пиксели, а второй параметр 0x00000000 является прозрачным пикселем.

Как я понял, битовую маску mask используют, для вкл./выкл. каналов подставляя в основном FF или 00
для канала или все же разные значения канала тоже часто используют (напр. 0x00990000)?

Старый 05.01.2013, 11:20
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы можете привести пример, как это использовать?)))
"Значения канала" задаются в color. А маска это маска, ее смысл только в том, чтобы не учитывать при поиске каналы, которые могут иметь любое значение. Например, чтобы искать белый цвет с любой альфой, мы маскируем альфу (не учитываем ее), а каналы учитываем — маска 0x00FFFFFF. Сначала установленный color будет преобразован в поисковый сэмпл: color & 0x00FFFFFF, затем при поиске значения проверяемых пикселов будут точно так же маскироваться, и какая бы альфа ни была, при сравнении с сэмплом она будет рассматриваться как нулевая, то есть никак не будет влиять на результат сравнения. Теоретически Вы наверное можете делать побитовый & каналов пикселей с 0х99, вот только практический смысл такой фильтрации мне крайне затруднительно представить, даже для определения цветов, которые пройдут такую проверку, мне понадобится написать тест — мозг с этим не сможет справиться)))
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.