2014-11-24 92 views
2

可以設置feGaussianBlur%SVG過濾器feGaussianBlur百分比

我不知道爲什麼,但這不起作用。

<filter id="drop-shadow"> 
    <feGaussianBlur in="SourceAlpha" stdDeviation="0.09"/> 
    <feOffset dx="52%" dy="2%" result="offsetblur"/> 
     <feFlood flood-color="#000000"/> 
     <feComposite in2="offsetblur" operator="in"/> 
     <feMerge> 
     <feMergeNode/> 
    <feMergeNode in="SourceGraphic"/> 
    </feMerge> 
</filter> 

回答

4

保羅和羅伯特的含義如下:

<filter id="drop-shadow" primitiveUnits="objectBoundingBox"> 
    <feGaussianBlur in="SourceAlpha" stdDeviation="0.09"/> 
    <feOffset dx="0.52" dy="0.02" result="offsetblur"/> 
     <feFlood flood-color="#000000"/> 
     <feComposite in2="offsetblur" operator="in"/> 
     <feMerge> 
     <feMergeNode/> 
    <feMergeNode in="SourceGraphic"/> 
    </feMerge> 
</filter> 

這是一個非常大的模糊和在%而言是非常大的偏差,所以你將不得不擴大過濾區很多。

<svg width="800" height="800"> 
    <defs> 
    <filter id="blurme" primitiveUnits="objectBoundingBox" x="-50%" y="-50%" width="300%" height="200%"> 
    <feGaussianBlur in="SourceAlpha" stdDeviation="0.09"/> 
    <feOffset dx="0.52" dy="0.02" result="offsetblur"/> 
     <feFlood flood-color="black"/> 
     <feComposite in2="offsetblur" operator="in"/> 
     <feMerge> 
     <feMergeNode/> 
     <feMergeNode in="SourceGraphic"/> 
    </feMerge> 
</filter> 
    </defs> 
    <rect filter="url(#blurme)" x="100" y="100" width="300" height="300" fill="red"/> 
</svg> 
+0

非常感謝! – user2306309 2014-11-25 00:34:56

3

SVG specification說,只有數字是允許的,但如果你使用objectBoundingBox數量實際上是對象的大小的百分比。 There's an example of filterPrimitiveUnits in the SVG specification

+0

當我將objectBoundingBox添加到過濾器時,沒有任何事情發生。只有陰影消失。請你給我一個例子。 – user2306309 2014-11-24 11:44:10

+1

Robert表示將primitiveUnits設置爲「objectBoundingBox」。即:''。 – 2014-11-24 12:26:55