SVG过滤器中的小数

时间:2019-02-05 22:35:30

标签: svg svg-filters blink

我无法让Chrome(和Opera)使用半径为十进制值的SVG过滤器。

转到http://oreillymedia.github.io/svg-essentials-examples/ch11/fe_morphology.html,然后尝试在半径字段中输入0或0.5。在Chrome中没有任何变化,但在Firefox中,腐蚀起作用了。

我有一个带小数位COMMA的语言环境,这起作用吗?用逗号将其解释为x,y。

这是一个已知问题吗?有任何解决方法吗?

1 个答案:

答案 0 :(得分:3)

0不是radius属性的有效值。引用规范:

  

radius =“ number-optional-number”

     

操作的半径(或半径)。如果提供两个数字,则第一个数字表示x半径,第二个值表示y半径。如果提供了一个数字,则该值将同时用于X和Y。这些值位于“过滤器”元素上的属性“ primitiveUnits”建立的坐标系中。   负值表示错误(请参阅错误处理)。值为零将禁用给定滤镜基元的效果(即结果是透明的黑色图像)。   如果未指定该属性,则效果就像指定的值为0。

半径值确定用于处理图像的卷积矩阵的大小。根据定义,矩阵必须具有整数个列和行。但是,尚不清楚分数应四舍五入还是四舍五入。

似乎Firefox总是四舍五入,而Chrome / Webkit总是四舍五入。

在任何情况下,小数值都是没有意义的,因此您应始终使用整数。