Safari svg 高斯模糊 (feGaussianBlur) 不会渲染小于 1 的 stdDeviation?

Safari svg gaussian blur (feGaussianBlur) wont render stdDeviation less than 1?

我正在渲染的复杂徽标显示了不同形状之间的瑕疵。 这些不是艺术作品中的差距,而是混叠的人工制品。

我找到了一个消除这些伪像的好方法,即屏蔽对象并应用具有低标准偏差值 (0.125) 的非常轻微的高斯模糊 (feGaussianBlur)。

Chrome,firefox甚至IE都显示的很好。然而,Desktop Safari (8.0) 似乎总是将模糊视为该值至少为 1px(或者看起来是这样),这使得它太模糊而无法成为可接受的徽标表示形式。

有没有办法让 Safari 支持 0 到 1 之间的值?

您可以使用 <feComponentTransfer>feFuncA>elements.The 调整模糊度,以下会加强您的模糊度,但可能会隐藏您的伪像,如果没有,请使用 tableValues 数组。

<feComponentTransfer >
   <feFuncA type="table" tableValues="0 0 0.5 1"/>
</feComponentTransfer>

我发现将模糊的 stdDeviation 设置为 0 在所有浏览器中都能达到预期的效果。 Safari 需要将颜色插值过滤器设置为 "sRGB"(其他浏览器默认设置为:SVG gaussian blur in Safari unexpectedly lightens image)。

这是我结束的地方,它似乎始终如一地工作,但我们现在将使用 png 并补偿高 DPI 设备:

    <filter id="blur" x="0%" y="0%" width="100%" height="100%" color-interpolation-filters="sRGB">
        <feGaussianBlur in="SourceGraphic" stdDeviation="0" />
   </filter>