SVGfeComponentTransfer
线性函数没有像我预期的那样工作。应用于灰度图像的斜率为 -1 和截距为 1 应该反转图像:黑色 -> 白色,白色 -> 黑色,25% 灰色 -> 75% 灰色,50% 灰色不变,等等。
我的期望是基于http://www.w3.org/TR/filter-effects/#feComponentTransferElement,上面写着“C' = 斜率 * C + 截距”,其中“C 是初始组件(例如,'feFuncR') , C' 是重新映射的分量;都在闭区间 [0,1] 中。”。
以下过滤器
<filter id="linear">
<feComponentTransfer>
<feFuncR type="linear" slope="-1" intercept="1" />
<feFuncG type="linear" slope="-1" intercept="1" />
<feFuncB type="linear" slope="-1" intercept="1" />
</feComponentTransfer>
</filter>
将黑色映射到白色,将白色映射到黑色,但中间值关闭,例如 50% 灰色映射到 90% 灰色,75% 灰色映射到 98% 灰色。有关简单示例,请参见http://jsfiddle.net/Rpjs2/。我在 Firefox 和 Safari 中得到相同的结果。
这是我第一次尝试 SVG 过滤器,所以我怀疑我误解了规格。有人可以纠正我吗?