SVG 高斯模糊

必須在 <defs> 標簽中定義 SVG 濾鏡。

高斯模糊(Gaussian Blur)

<filter> 標簽用來定義 SVG 濾鏡。<filter> 標簽使用必需的 id 屬性來定義向圖形應用哪個濾鏡?

<filter> 標簽必須嵌套在 <defs> 標簽內。<defs> 標簽是 definitions 的縮寫,它允許對諸如濾鏡等特殊元素進行定義。

請把下面的代碼拷貝到記事本,然后把文件保存為 "filter1.svg"。把此文件放入您的 web 目錄:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" />
</filter>
</defs>
<ellipse cx="200" cy="150" rx="70" ry="40"
style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>
</svg>

代碼解釋:

  • <filter> 標簽的 id 屬性可為濾鏡定義一個唯一的名稱(同一濾鏡可被文檔中的多個元素使用)
  • filter:url 屬性用來把元素鏈接到濾鏡。當鏈接濾鏡 id 時,必須使用 # 字符
  • 濾鏡效果是通過 <feGaussianBlur> 標簽進行定義的。fe 后綴可用于所有的濾鏡
  • <feGaussianBlur> 標簽的 stdDeviation 屬性可定義模糊的程度
  • in="SourceGraphic" 這個部分定義了由整個圖像創建效果

查看例子

另一個 stdDeviation 值不同的例子

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="20"/>
</filter>
</defs>
<ellipse cx="200" cy="150" rx="70" ry="40"
style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>
</svg>

查看例子