我想将艺术资产的色调从一种明亮的颜色调整到另一种颜色,保持单色功能的完整。我将以RGBYTP(红色,绿色,蓝色,黄色,蓝绿色或紫色)颜色开始;然后通过色调调整,我将能够使它看起来像其他RGBYTP彩色图像中的每一个。你如何像真正的色轮那样调整AS3中的色调?
例如,采取这些有色眼球中的任何一个,并通过AS3色调调整,可以使任何这些其他有色眼球。网页/游戏设计中的常用技巧。
eyeballs http://quadradius.com/stuff/RandomImagesForLinking/hue-adjusted-eyeballs.jpg
我经常用使用GreenSock动画平台(TweenLite的/ TweenMax),但两者的核心AS代码和TweenLite的发动机似乎并不如我所料处理色调。我想以60度的增量调整色调色轮,这应该很好地调整所有6种二次色,并从中获得完整的色彩效果。但我实际上得到的是可怕的。实际上,调整RGBYTP颜色的色调会返回非常奇怪的结果;土色调,粉彩,甚至灰色阴影。
bad-hues http://quadradius.com/stuff/RandomImagesForLinking/6-colors-all-hue-adjusted.jpg
下面是我用它来生成所有这些圈子的代码。
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的/最高不能处理,如Photoshop或艺术家色轮的色彩?我究竟做错了什么?
Flash仅支持RGB和ARGB色彩格式。你需要循环通过色调,并将其转换为RGB格式,然后再应用它 - 谷歌搜索应该提供一些算法来转换 – 2013-01-06 00:07:04
我已经使用了许多人认为是一个很好的算法包; GreenSock平台。它用于补间,转换,定时器和颜色操作;并包含“色调”功能。但即使是他们可以说是受人尊重的色调功能似乎也没有结果。该算法的结果在包含圆圈的图像中。例如,如果你从紫色开始,你永远不会产生黄色。 –