2015-03-13 57 views
0

我渲染的複雜徽標顯示不同形狀之間的工件。 這些不是藝術品中的空白,而是別名僞影。Safari svg高斯模糊(feGaussianBlur)不會渲染stdDeviation少於1?

我發現了一個很好的解決方案,用於刪除這些工件,即掩蓋對象並應用stdDeviation值較低(0.125)的非常輕微的高斯模糊(feGaussianBlur)。 Chrome瀏覽器,Firefox甚至IE瀏覽器都能很好地顯示出來。不過,桌面Safari(8.0)似乎總是將模糊效果看作值至少爲1px(或者看起來似乎是這樣),使其變得模糊不清,無法成爲標識的可接受表示。

有沒有辦法讓safari支持0到1之間的值?

回答

1

我發現,設置模糊爲0的stdDeviation不得不在所有瀏覽器的預期效果。 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> 
0

您可以使用<feComponentTransfer>feFuncA>元素調整模糊。以下內容將加強您的模糊效果,但如果不是,請使用tableValues數組玩弄隱藏您的工件。

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