Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Изменение цвета векторной графики (http://www.flasher.ru/forum/showthread.php?t=108554)

Nikelin 24.02.2008 04:01

Изменение цвета векторной графики
 
Столкнулся с проблемой во время создания небольшой программки.

Суть такова, что есть векторное изображение (изначально чёрного цвета с прозрачным фоном) цвет которого необходимо изменить.
В целом brutforce-метод попиксельного перебора пробовал, но если учитывать, что изображение может достигать 250х250 пикселей, он не вписывается в рамки быстродействия.

Может существует более простые методы изменения цвета ?

Посмотреть пример программы, о которой я говорю можно тут:
http://my.futbolka.ua/constructor.html

После добавления изображения можно выбрать его цвет. Цвет меняется быстро, и эффективно.

Огромная просьба дать ссылки на статьи, посты и прочее, посколько тема действительно горячая.


Спасибо.

Olegg 25.02.2008 13:41

Ну вот смотри.Как ты меняешь цвет мувика,если он на сцене?
Через Color / Tint ...И там уже вводишь цвет.
программно это тоже можно сделать как-то....надо подумать,так сразу и не скажу.

Nikelin 26.02.2008 02:15

Вот именно, что нужно программно....

MrPoma 26.02.2008 02:46

Color, ColorTransform, ColorMatrixFilter.

WindWalker 26.02.2008 05:38

Код:

// это пишем вверху класса или в первой строке, если код пишешь в кадре
import flash.geom.ColorTransform;

// создаём новое преобразование цветов
var ct:ColorTransform = new ColorTransform();

// это самый простой способ его использования. в данном случае говорим, перекрашиваем в красный
ct.rgb = 0xff0000;

// накладываем преобразование на мувик
mc.transform.colorTransform = ct;

Следует обратить внимание на то, что наложение преобразования делается только прямым присваиванем.
Т.е. не создаётся никакой привязки между мувиком и преобразованием.

Можно как угодно менять ct - это никак не повлияет на мувик.
И только когда присвоишь его в transform.colorTrans - только тогда произойдёт изменение цвета.

Здесь я привёл только самый простой способ использования.
Вообще возможностей немного больше (аналогично Advanced в редакторе).

Например:
Код:

ct = new ColorTransform(0.1, 0.2, 0.3, 1, 0, 50, 100, 0);
создаст преобразование, которое:
уменьшает красную составляющую до 10%
уменьшает зелёную составляющую до 20%
уменьшает синию составляющую до 30%
оставляет альфу на 100%
прибавляет к красному 0
прибавляет к зелёному 50
прибавляет к синему 100
прибавляет к альфе 0


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

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