Форум 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)
-   -   Изменение Hue и Saturation (http://www.flasher.ru/forum/showthread.php?t=103889)

Ведьмак 14.11.2007 18:44

Изменение Hue и Saturation
 
Господа, подскажите чем можно, например, убрать Saturation у мувика програмными средствами?

Chas 14.11.2007 19:08

Код:

        static function getDesaturationFilter(t:Number):ColorMatrixFilter {
        t = t ? t : 1;
        var r:Number = 0.212671;
        var g:Number = 0.715160;
        var b:Number = 0.072169;
        return new ColorMatrixFilter([t*r+1-t, t*g, t*b, 0, 0,
                                                                  t*r, t*g+1-t, t*b, 0, 0,
                                                                  t*r, t*g, t*b+1-t, 0, 0,
                                                                  0, 0, 0, 1, 0]);
        }


Ведьмак 14.11.2007 19:10

2 Chas: а что за эмпиричесские коэфициенты r, g, b ?

PS: в каких пределах изменятся t.. ?

пока результата нет

Chas 14.11.2007 19:26

наложи в IDE на мувик adjust color, убири saturation, сделай trace (movieName.filters[0]); увидешь эти цифры.

Ведьмак 14.11.2007 19:39

ты этот код, вообще тестировал?

Chas 14.11.2007 19:39

ёпт.
Код:

import mylib.util.GraphicUtils;
mc.filters = new Array (GraphicUtils.getDesaturationFilter(0));


Ведьмак 14.11.2007 19:41

это уже ближе

PS: не работает.. сделай какой исходник рабочий и скинь полный код...если не в лом..

iNils 14.11.2007 19:54

Код:

import flash.filters.ColorMatrixFilter;
desaturation = 0;
function getDesaturationFilter (t) {
//// при t = 0 будет истинная картина
        var r = 0.212671;
        var g = 0.715160;
        var b = 0.072169;
        return new ColorMatrixFilter ([t * r + 1 - t, t * g, t * b, 0, 0, t * r, t * g + 1 - t, t * b, 0, 0, t * r, t * g, t * b + 1 - t, 0, 0, 0, 0, 0, 1, 0]);
}
_root.createEmptyMovieClip ("mc", 2);
mc.beginGradientFill ("linear", [0xFF0000, 0x00FF00, 0x0000FF], [100, 100, 100], [0, 128, 255], {a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1});
mc.moveTo (100, 100);
mc.lineTo (100, 300);
mc.lineTo (300, 300);
mc.lineTo (300, 100);
mc.lineTo (100, 100);
mc.endFill ();
mc.onEnterFrame = function () {
        if (desaturation <= 0) {
                des = 0.05;
        } else if (desaturation >= 1) {
                des = -0.05;
        }
        desaturation += des;
        this.filters = new Array (getDesaturationFilter (desaturation));
};


и еще http://etcs.ru/blog/as2/ru/etcs/filt...ilter/#more-11

Ведьмак 14.11.2007 19:57

болшой сэнкс..

Chas 14.11.2007 20:13

Вложений: 1
Держи. дергай за движок.

эть ты черт, иНилс меня опередил. ну ладно.


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

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