![]() |
|
||||||||||
|
|||||
|
Дано: BitmapData, в котором есть пиксели, где ничего не нарисовано(0x00000000) и точки цвета RGB, но с разной прозрачностью.
Требуется: первые оставить без изменения, вторые сделать полностью Как это можно реализовать? Нужен очень быстрый способ. Последний раз редактировалось Герыч; 28.07.2009 в 02:11. |
|
|||||
|
ветеран форума
|
ээ, по описанию получится что вся картинка станет прозрачной после преобразований.
В любом случае, для таких вещей у BitmapData есть метод threshold
__________________
4am is time to rock |
|
|||||
|
ой, напутал-вечно путаю прозрачность и непрозрачность... щас исправлю
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Т.е. в результате нужно точки RGB цвета на черном фоне?
|
|
|||||
|
нет. Непрозрачные точки RGB на прозрачном фоне.
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Может, просто поднять контраст альфа-канала через ColorTransform? Там можно задавать множители больше 1.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
угум. Тогда именно получатся точки RGB цвета на черном фоне.
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Нулевая альфа - это полная прозрачность. По условиям из первого поста пустые точки - полный 0, а непустые с какой-то альфой. 0 умножить на не 0 - 0 и останется, не 0 умножить на большое число - будет полностью непрозрачный фон, вроде это нужно в пятом посте.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
м... точно... если не alphaOffset трогать, а alphaMultiplier задрать - получается.
|
|
|||||
|
что-то оч странно...
не работает: var rect:Rectangle=new Rectangle(0, 0, w, h); ... bmp.colorTransform(rect,new ColorTransform(1,1,1,255)); bmp.unlock(); var rect:Rectangle=new Rectangle(0, 0, w, h); ... bmp.colorTransform(rect,new ColorTransform(1,1,1,1,0,0,0,255)); bmp.unlock(); Ещё вариант нашёл: |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|