0

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

FXG 有一个基本的灰色路径,我在后续将此路径用于其他形状时应用了不同的颜色转换。
这里是 FXG 颜色变换(相当于colorTransform):

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

如何将此颜色转换(甚至是负偏移)转换为 SVG 可以理解的内容?我只需要更改颜色偏移量,不需要乘数或 alpha。
我认为它可以通过 <feColorMatrix> 来实现(看起来这个 SVG 过滤器像 AS3 ColorMatrixFilter 一样工作)但我找不到如何。

所以,真正的普遍问题是如何将这些颜色偏移更改转换为颜色矩阵过滤器?

4

2 回答 2

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);

最后一列是偏移量。

于 2011-04-19T08:59:55.283 回答
1

除了 rOffset、gOffset、bOffset 和 aOffset 之外,Actionscript ColorTransform 还具有 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
]
于 2011-04-28T17:32:33.033 回答