Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как подобрать точный цвет с помощью colorTransform (http://www.flasher.ru/forum/showthread.php?t=124176)

PeSH 22.04.2009 22:12

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

VVall 22.04.2009 22:21

И в чём проблема? colorTransform позволяет это сделать, из его описания очевидно, как именно (используя множители компонент и нулевые смещения).

PeSH 22.04.2009 23:07

Проблема в том, что нужна функция, которая на входе принимает rgb цвет, а на выходе выдает объект типа colorTransform, при применении которого к объекту, он становится нужного оттенка переданного цвета.

Rzer 22.04.2009 23:12

http://silin.fatal.ru/#AS3/filters/color

VVall 22.04.2009 23:17

Нужна функция - напишите, в чём проблема? Есть цвет RGB, есть исходная картинка в оттенках серого. Переводим компоненты в диапазон 0..1, используем как множители для компонент в colorTransform.

2morrowMan 23.04.2009 00:04

Код AS3:

import fl.motion.Color;
 
var c:Color = new Color();
c.tintColor = myRGBColor;
c.tintMultiplier = 0.5; // < тут надо менять от 0 до 1
myClip.transform.colorTransform = c;


PeSH 23.04.2009 14:09

Я сел, хорошенько подумал, и вот что у меня получилось. Функция статичная и выделена в отдельный статичный класс для общего пользования в проекте. Работает как нужно, может кому и пригодится.

Код AS3:

public static function getColorTransformObj (color:Number):ColorTransform {
        return new ColorTransform((color >> 16 & 0x0000FF)/100,
                                          (color >> 8 & 0x0000FF)/100,
                                          (color & 0x0000FF)/100);
}

А по поводу последнего поста, тоже интересное решение :)
Тема закрыта, все огроменное спасибище за участие!


Часовой пояс GMT +4, время: 13:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.