我正在使用 SVG 过滤器在一些复杂的路径上创建模糊的“阴影”类型效果。
<defs>
<filter id="dropshadow" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feColorMatrix result="hueOut" in="SourceAlpha" type="hueRotate" values="340"/>
<feColorMatrix result="satOut" in="hueOut" type="saturate" values="3"/>
<feGaussianBlur in="satOut" stdDeviation="8"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
feColorMatrix
我纯粹通过反复试验得出了上述值。(如果我单独使用矩阵数学,我永远不会想出一种从暗到亮的特别美丽的色调变化。)基本上,我将色轮旋转 340 度,然后我正在饱和颜色使用值 3,就在模糊之前。(过去的规范对此有些不清楚,但反复试验表明,大于 1 的type="saturate"
值会使图像饱和,小于 1 的值会使图像去饱和。)
这就是问题所在:我正在迭代大量路径,双矩阵运算使我的机器停止运行。它经常崩溃。
一些矩阵数学大师可以帮我计算出将上面的两个 feColorMatrix 过滤器组合成一个更有效feColorMatrix
的 type="matrix" 过滤器原语的数字吗?我得到了规范的要点,但我在数学方面有点不知所措。