2

我想将艺术资产的色调从一种明亮的颜色调整为另一种,保持单色特征不变。我将从 RGBYTP(红色、绿色、蓝色、黄色、蓝绿色或紫色)颜色开始;然后通过色调调整,我将能够使它看起来像其他RGBYTP彩色图像中的每一个。

例如,取其中任何一种颜色的眼球,通过AS3的色调调整,就可以制作出其他颜色的眼球中的任何一种。网页/游戏设计中的常用技术。

眼球
(来源:quaradius.com

我经常使用 GreenSock 动画平台 (TweenLite/TweenMax),但核心 AS 代码和 TweenLite 引擎似乎都没有像我预期的那样处理色调。我想以 60 度的增量调整色调色轮,这应该可以很好地调整所有 6 种二次色,并从中获得浓郁的颜色结果。但我实际得到的是可怕的。事实上,调整 RGBYTP 颜色的色调会返回非常奇怪的结果。大地色系、柔和色调,甚至灰色调。

不好的色调
(来源:quaradius.com

这是我用来生成所有这些圆圈的代码。

    for (var j:int = 0; j < 6; j++) {
        for (var i:int = 0; i < 7; i++) {
            var sprite:Sprite = new Sprite();
            var baseColor:uint;
            if (j == 0) baseColor = 0xFF0000;
            if (j == 1) baseColor = 0x00FF00;
            if (j == 2) baseColor = 0x0000FF;
            if (j == 3) baseColor = 0xFFFF00;
            if (j == 4) baseColor = 0xFF00FF;
            if (j == 5) baseColor = 0x00FFFF;
            sprite.graphics.beginFill(baseColor);
            sprite.graphics.drawEllipse(40 * i + 10, 300 + (60 * j) + 10, 40, 40);// positioning
            addChild(sprite);
            TweenMax.to(sprite, .5, {colorMatrixFilter:{hue:i * 60 }} );
        }
    }

为什么 AS3 或 TweenLite/Max 不能像 Photoshop 或艺术家色轮那样处理色调?我究竟做错了什么?

4

2 回答 2

1

我怀疑 GreenSock 平台正在使用 Flash 自己的fl.motion.AdjustColor,正如您所发现的那样,它不会在 RGB 和 HSV 之间执行特别好的转换。你必须考虑不同颜色的感知亮度才能让它看起来正确,所以它有点主观。

这个页面有一个很好的解释和一些带有缩放值的示例代码,以获得更自然的色调变化。您可以使用它为flash.filters.ColorMatrixFilter生成一个矩阵,然后您可能必须编写一个函数来获取当前补间时间并运行它onUpdate以将其与 TweenMax 一起使用。

于 2013-01-28T17:10:51.633 回答
0

两种颜色在真实色轮上不会直接变黑。黄色先变成棕色,青色先变成蓝色。棕色是黑色之前最深的红色。青色变为黑色之前最深的蓝色。我不知道任何java,但我肯定想要一个像这样的java轮。http://acko.net/blog/farbtastic-jquery-color-picker-plug-in/

黄色的眼睛使用 RGB 渐变变暗,这就是为什么它看起来偏绿,青色的眼睛也是如此。我在这个网站上制作的表格中有编码等级。 http://www.realcolorwheel.com/colorwheel.htm 您可以在源页面上获取颜色代码。

唐,RCW

于 2013-01-06T00:38:19.203 回答