![]() |
Усечение пикселей в BitmapData (срочно)
Вложений: 1
Здравствуйте. Прошу помощи в решении задачи по усечению (заданию прозрачности серым и чёрным пикселям). Прилаживаю картинку, есть динамическай битмап дата, которая образ человека окрашивает в различный цвет кроме градаций серого, не нужны все серые, чёрные и белые пиксели. Каким образром можно битмапу очистить от них. Написал вот это
Код AS3:
|
PixelBender
На PB такую программу обработки очень просто сделать. Пишете код в PixelBender, экспортируете во флеш, подключаете как фильтр к битмапе или битмап дате. |
Цитата:
|
http://habrahabr.ru/post/70246/
http://habrahabr.ru/post/84396/ http://help.adobe.com/ru_RU/as3/dev/...950BBC223.html Твоя задача вообщем то - изучить работу с PB, научиться внедрять созданный фильтр во флешь. 1 может 2 дня мозгового штурма, и ты станешь на 20% круче. Такая обработка битмапы идеально подходит для учебных целей. Алгоритм пиксельного шейдера не сложный - получаешь цвет пикселя и на основе каких-то переданных констант решаеш - рисовать его или нет. |
отлично я думаю то что нужно, только не могу найти как получить значение цвета пикселя и обесцветить его. Если не сложно я думаю тут две строчки, поделитесь ними
Добавлено через 10 минут я уже впринцепи разобрался что и как. Внедрил без проблем фильтр. Осталось вычитание пикселей. Большое спасибо, действительно мощный инструмент) |
PB фильтры разрабатываются в бесплатной программе Pixel Bender, от-туда же экспортируются в формате .pbj для внедрения во флешь.
Сперва скачайте Pixel Bender. В ней есть разные примеры готовых фильтров. И почитайте статьи по ссылкам, саму документацию на сайте адоби на русском. Получение цвета пикселя производиться как выборка из текстуры на основе текущих координат: Код:
dst = sampleNearest(src, outCoord());dst.r - значение красного (0-1) dst.g - значение зелёного (0-1) dst.b - значение синего (0-1) dst.a - прозрачность (0-1) outCoord() - функция для получения x,y координат текущего пикселя. src - битмапа из которой производится выборка |
нашел как перекрашивать, осталось получить значение цвета пикселя
Добавлено через 1 минуту Цитата:
|
Найди среднее арифметическое трёх цветовых каналов, если интенсивность красного канала отличается от среднего значения более некоторого порога - рисуешь пиксель, иначе - альфа канал в прозрачность.
|
Вложений: 1
сделал так, но еще нужно корректировки. Дело в том что там не только крассный, там еще 4-5 цветов, синий, зелённый, желтый. Не могу додумать как опередилить серый это или нет.
|
блин, читать нужно внимательней))
Цитата:
|
| Часовой пояс GMT +4, время: 03:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.