【问题标题】:Safari svg gaussian blur (feGaussianBlur) wont render stdDeviation less than 1?Safari svg 高斯模糊(feGaussianBlur)不会渲染 stdDeviation 小于 1?
【发布时间】:2015-05-16 04:57:16
【问题描述】:

我正在渲染的复杂徽标显示了不同形状之间的伪影。 这些不是艺术作品中的空白,而是锯齿伪影。

我找到了一个很好的解决方案来消除这些伪影,即掩盖对象并应用非常轻微的高斯模糊 (feGaussianBlur) 和低 stdDeviation 值 (0.125)。

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

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

【问题讨论】:

    标签: svg safari webkit svg-filters


    【解决方案1】:

    我发现将模糊的 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>
    

    【讨论】:

      【解决方案2】:

      您可以使用 &lt;feComponentTransfer&gt;feFuncA&gt;elements 调整模糊效果。以下内容将加强您的模糊效果,但如果不是,可能会隐藏您的工件,请使用 tableValues 数组。

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

      【讨论】:

        猜你喜欢
        • 2012-10-23
        • 2015-03-11
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        相关资源
        最近更新 更多