SVG 模糊效果

<defs> 和 <filter>

所有 SVG 滤镜都在 <defs> 元素中定义。<defs> 元素是定义(definitions)的缩写,包含对特殊元素(比如滤镜)的定义。

<filter> 元素用于定义 SVG 滤镜。<filter> 元素有一个必需的 id 属性,用于标识滤镜。然后图形会指向要使用的滤镜。

SVG <feGaussianBlur>

例子 1

<feGaussianBlur> 元素用于创建模糊效果:

这是 SVG 代码:

<svg height="110" width="110">
  <defs>
    <filter id="f1" x="0" y="0">
      <feGaussianBlur in="SourceGraphic" stdDeviation="15" />
    </filter>
  </defs>
  <rect width="90" height="90" stroke="green" stroke-width="3"
  fill="yellow" filter="url(#f1)" />
</svg>

亲自试一试

代码解释:

  • <filter> 元素的 id 属性定义了滤镜的唯一名称
  • <feGaussianBlur> 元素定义模糊效果
  • in="SourceGraphic" 定义为整个元素创建的效果
  • stdDeviation 属性定义模糊量
  • <rect> 元素的 filter 属性将该元素链接到 "f1" 滤镜