Показать сообщение отдельно
Старый 19.10.2006, 12:11
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 4  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
Цитата:
Сообщение от iNils
В смысле?
Есть битмап. Функция занимается тем, что прописывает в каждую точку цвет 0, и инвертирует альфа-канал. Параллельно верхняя и нижняя границы альфа канала смещаются (похоже на фильтр levels в фотошопе).

silin всё правильно понял. проблема в том что я по дурацки назвал переменные -) Неочевидно что значит maxA и minA. На самом деле maxA - это максимальная прозрачность битмапа. minA, соответственно, ограничивает минимальное значение прозрачности (maxA < minA).

Самое удивительное для меня - что функция colorTransform вообще не съедает ни сколько времени!! То есть ускорение 100% -)
Но есть проблема: там где на битмапе были не-инициализированные точки, колорТрансформ оставляет пустоту (хотя getPixel возвращает 0, то есть прозрачный черный).

Поскольку объяснять я не умею, выложил пример -)
www.myxus.nm.ru/1/__sample.rar
В примере экран заливается черным цветом с альфой minA, при этом в определенном месте оставляется пустое место. Потом в этом месте рисуется круг, блюрится, с него снимается битмап. И вот этот битмап я хочу проинвертировать. Смотреть только функцию invertAlpha().

Теперь я уже понимаю, что путем наименьшего сопротивления было нарисовать нужную форму в векторе, так что можно было бы обойтись без извратов с альфой.. Но раз уж колорТрансформ такой быстрый... Если с его помощью удастся решить проблему - было бы круто :-)