colorTransform等效颜色矩阵

时间:2011-04-19 08:49:56

标签: actionscript-3 colors svg colormatrix colortransform

我正在尝试将简单的FXG转换为SVG。 转换非常简单,但我遇到了颜色处理问题。

FXG具有基本色调的灰色路径,并且我在后续使用此路径时对其他形状应用不同的颜色转换。
这里是FXG颜色转换(相当于colorTransform):

<ColorTransform redOffset="-255" blueOffset="25" greenOffset="56"/>

如何将此颜色转换(甚至是负偏移)转换为SVG可以理解的内容?我只需要颜色偏移变化,没有乘数或alpha 我认为可以用&lt; feColorMatrix&gt;来实现。 (看起来像这个SVG过滤器像AS3 ColorMatrixFilter一样工作)但我找不到。

那么,真正的一般问题是如何将这些颜色偏移变化转换为颜色矩阵滤波器?

2 个答案:

答案 0 :(得分:1)

var matrix : Array = new Array();
matrix = matrix.concat([1,0,0,0,-255]);// red
matrix = matrix.concat([0,1,0,0,  56]);// green
matrix = matrix.concat([0,0,1,0,  25]);// blue
matrix = matrix.concat([0,0,0,1,   0]);// alpha
var colorFilter : ColorMatrixFilter = new ColorMatrixFilter(matrix);

最后一列是偏移的。

答案 1 :(得分:1)

Actionscript ColorTransform除了rOffset,gOffset,bOffset和aOffset之外还有redMultipler,greenMultiplier,blueMultiplier和alphaMultiplier属性。

SVG feColorMatrix成为:

[
rMult/256, 0, 0, 0, rOffset/256,
0, gMult/256, 0, 0, gOffset/256,
0, 0, bMult/256, 0, bOffset/256,
0, 0, 0, aMult/256, aOffset/256
]