colorTransform эквивалентная цветовая матрица - PullRequest
0 голосов
/ 19 апреля 2011

Я пытаюсь преобразовать простой FXG в SVG. Преобразование довольно простое, но я столкнулся с проблемой манипулирования цветом.

У FXG базовые оттенки серого пути, и я применяю другое преобразование цвета при последующем использовании этого пути для других фигур.
Здесь преобразование цвета FXG (эквивалентно colorTransform ):

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

Как я могу преобразовать это преобразование цвета (даже отрицательное смещение) в то, что SVG понимает? Мне нужны только изменения смещения цвета, без множителя или альфа.
Я думаю, что это может быть достигнуто с (похоже, этот SVG-фильтр работает как AS3 ColorMatrixFilter), но я не могу найти, как.

Итак, основной вопрос в том, как я могу преобразовать эти изменения смещения цвета в фильтр цветовой матрицы?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Actionscript ColorTransform также имеет свойства redMultipler, greenMultiplier, blueMultiplier и alphaMultiplier кроме rOffset, gOffset, bOffset и aOffset.

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
]
1 голос
/ 19 апреля 2011
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);

Последний столбец смещен.

...