![]() |
Как из произвольной картинки получить только области заданного оттенка?
Столкнулся с проблемой, которую не получается пока решить самому.
Есть цветное изображение, представленное в битмапдате. Мне необходимо получить битмапдату с прозрачным (или черным фоном) и оставить на нем только те элементы изображения, которые с некоторой заданной степенью имеют необходимый оттенок, например, зеленый. В простом случае я могу сравнивать компоненты цвета каждого пикселя с искомыми компонентами, но это слишком затратно. Я пытался с помощью BitmapData.threshold дважды "пройтись" по изображению (создавая две новые битмапдаты), сначала "отрезая" ниже порога, а во второй "отрезая" выше. Но получается ерунда. Кто-нибудь может подсказать, в каком направлении двигаться? |
по-моему даже фотошоп это нормально сделать не может
|
Мне хотя бы до уровня фотошопа, "select color" :)
|
по типу этого? http://silin.su/#AS3/bitmap/bucket/bin
|
Вложений: 1
Шейдер? У меня есть шейдер хромакея, он убивает заданный цвет. Думаю, если глянуть его реализацию, не составит труда сделать обратное.
|
>> пытался с помощью BitmapData.threshold дважды "пройтись" по изображению ..
фишка в том, что анализировать надо покомпонентно и threshold'ом такое не взять есть такой финт с отрисовкой разницы (BlendMode.DIFFERENCE), усреднением каналов и тогда уже threshold'ом.. насколько это точно по всяким цветовым понятиям не берусь судить, но на глаз похоже Код AS3:
|
Спасибо большое, буду разбираться!
|
Цитата:
|
compare просто минусует, а BlendMode.DIFFERENCE дает разницу между более светлым и более темным
т.е. для 0xFFFFFF будет тоже самое, для других - как получится |
| Часовой пояс GMT +4, время: 18:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.