【问题标题】:colorTransform equivalent color matrixcolorTransform 等效颜色矩阵
【发布时间】:2011-04-19 08:49:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: actionscript-3 colors svg colormatrix colortransform


    【解决方案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);
    

    最后一列是偏移量。

    【讨论】:

    • 感谢您的澄清。附带说明一下,我不能像在 SVG 中那样使用这个矩阵,它只能理解 -1 和 1 之间的值。因此,SVG 的相同矩阵:
    【解决方案2】:

    除了 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
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多