我正在尝试将简单的FXG转换为SVG。 转换非常简单,但我遇到了颜色处理问题。
FXG具有基本色调的灰色路径,并且我在后续使用此路径时对其他形状应用不同的颜色转换。
这里是FXG颜色转换(相当于colorTransform):
<ColorTransform redOffset="-255" blueOffset="25" greenOffset="56"/>
如何将此颜色转换(甚至是负偏移)转换为SVG可以理解的内容?我只需要颜色偏移变化,没有乘数或alpha 我认为可以用&lt; feColorMatrix&gt;来实现。 (看起来像这个SVG过滤器像AS3 ColorMatrixFilter一样工作)但我找不到。
那么,真正的一般问题是如何将这些颜色偏移变化转换为颜色矩阵滤波器?
答案 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
]