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

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

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

Регистрация: Sep 2008
Сообщений: 14
По умолчанию Алгоритм работы tolerance при очистке бг.

Добрый день!

Нужно сделать инструмент подобный Magic Eraser Tool в Photoshop.
Сам инструмент сделал с помощью BitmapData.threshold(). Но пока работает по конкретному коду цвета. Нужно сделать допуск по отношению к выбранному цвету. Но, к сожалению, нигде не могу найти алгоритм работы этого атрибута (Tolerance в фотошопе)

Буду очень рад любой помощи.. Что читать, где смотреть...
Спасибо большое!

Старый 07.06.2011, 12:48
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
А BitmapData.threshold() почему не как надо работает? Ну какой алгоритм - если разница между заданным цветом и цветом пиксела картинки меньше заданной (range), то пиксел подходит, выделяется, нет так нет. Как разницу считать? Считаешь покомпонентно, для каждого компонента берешь модуль, складываешь.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.06.2011, 13:31
dFlasher вне форума Посмотреть профиль Отправить личное сообщение для dFlasher Найти все сообщения от dFlasher
  № 3  
Ответить с цитированием
dFlasher

Регистрация: Sep 2008
Сообщений: 14
Проблема именно с подсчетом range. И каким образом относится tolerance 0-255 к конкретному цвету. Т.е. не достаточно теоретической базы для создания формулы, чтоб данные передать в threshold(). Буду очень рад ссылкам на теорию, где это описывается, дабы подучить этот материал... Т.к. ищу не понимаю, что...

Спасибо.

Старый 07.06.2011, 13:41
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
http://ru.wikipedia.org/wiki/%D0%A4%...87%D0%B8%D1%8F
http://www.compuphase.com/cmetric.htm
Но я бы советовал не париться, а сделать тупо либо
dist = abs(R1-R2) + abs(G1-G2) + abs(B1-B2)
либо
dist = max(abs(R1-R2), abs(G1-G2), abs(B1-B2))
- 0 - 255 отлично ложится на такую метрику. Я чую, что её используют вообще) Тут (R1, G1, B1) -1-й цвет в RGB, если не понятно.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.06.2011, 13:44
dFlasher вне форума Посмотреть профиль Отправить личное сообщение для dFlasher Найти все сообщения от dFlasher
  № 5  
Ответить с цитированием
dFlasher

Регистрация: Sep 2008
Сообщений: 14
Цвет хранится в таком формате: 0x00RRGGBB, где:
00 - прозрачность
RR - доля красного 0-255
GG - доля зеленого 0-255
BB - доля синего 0-255
При разных составляющих этих трех компонентов получается цвет. Это понятно.
Если tolerance 0 - то это один оригинальный цвет. Если например 1, то как подсчитать диапазон? Т.е. по Вашим словам нужно взять модуль... Ну мне к сожалению не понятно как

Добавлено через 1 минуту
О! Отлично! Буду разбираться! Огромнейшее спасибо за помощь!

Старый 07.06.2011, 13:51
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
В моих формулах tolerance - это dist.
Диапазон - все цвета 0xR2G2B2, удовлетворяющие условию
tolerance >= max(abs(R1-R2), abs(G1-G2), abs(B1-B2))
0xR1G1B1 - цвет, диапазон возле которого считаем. Как-то так.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

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

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


 


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


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