![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2010
Сообщений: 28
|
Здравствуйте.
Задача в следующем: есть картинка с бликами, поверх нее я создаю Sprite залитый нужным цветом. Естесственно, вся картинка оказывается "под" этим цветом. Для сохранения естесственности мне нужно блики (а это места картинки с цветом 0хFFFFFF условно) поднять над слоем с цветом. Пробовал blendmode.OVERLAY, но исходный цвет спрайта искажается, что логично ![]() Может быть, кто-нибудь сталкивался с подобной задачей или какие-то мысли есть, буду благодарен. Спасибо. |
|
|||||
|
Lorem ipsum
|
/** * * @param solidColorImage изображение, залитое сплошным цветом * @param originalImage оригинал изображения с необходимыми бликами * @param threshold значение порога (0...255) выше которого мы считаем цвет бликом * @param spotlightColor цвет добавляемого блика в формате AARRGGBB * */ public function addSpotlight(solidColorImage:BitmapData, originalImage:BitmapData, threshold:uint = 0xff, spotlightColor:uint = 0xffffffff):void { if (threshold > 255) { throw new ArgumentError("параметр threshold должен находиться в диапазоне 0...255"); } var rect:Rectangle = solidColorImage.rect; var point:Point = new Point(0, 0); solidColorImage.threshold(originalImage, rect, point, ">=", threshold, spotlightColor, 0x000000ff); } К неоспоримым недостаткам метода можно отнести работу с одним лишь каналом (сейчас синим, можно поменять). Это будет давать артефакты на ярких цветах вообще. Т.е. для него ярко синий или сиреневый цвета тоже будут бликами. Ярко зеленые/красные/желтые — нет.
__________________
Поймай яблоко 2! Последний раз редактировалось Zebestov; 09.03.2012 в 18:35. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 28
|
Цитата:
Спасибо. Добавлено через 4 минуты Цитата:
![]() |
|
|||||
|
Lorem ipsum
|
А вообще если нужно делать такое программно, то:
1. оригинал делаем grayscale 2. полученное изображение "вытягиваем" так, чтобы все, что темнее бликов стало черным 3. создаем картинку белого цвета и копируем ей в альфу любой канал (RGB) из предыдущего изображения Получится программно созданный слой с бликами на прозрачном фоне.
__________________
Поймай яблоко 2! |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:16. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| overlay , блики , заливка |
|
|