SVG 使用 <filter> 元素来定义滤镜。<filter> 元素使用 id 属性来唯一标识它。滤镜在 <def> 元素中定义,然后由 graphics 元素通过其 ID 引用。
SVG 提供了一组丰富的滤镜。以下是常用滤镜的列表。
- feBlend
- feColorMatrix
- feComponentTransfer
- feComposite
- feConvolveMatrix
- feDiffuseLighting
- feDisplacementMap
- feFlood
- feGaussianBlur
- feImage
- feMerge
- feMorphology
- feOffset - filter for drop shadows
- feSpecularLighting
- feTile
- feTurbulence
- feDistantLight
- fePointLight
- feSpotLight
语法声明
以下是 <filter> 元素的语法声明。我们只展示了主要属性。
属性
名称 | 描述 |
---|---|
filterUnits | 定义滤镜效果区域的单位。它指定滤镜中各种长度值的坐标系以及定义滤镜子区域的属性。如果 filterUnits=“userSpaceOnUse”,则值表示在使用 'filter' 元素时当前用户坐标系中的值。如果 filterUnits=“objectBoundingBox”,则值表示在使用 'filter' 元素时引用元素上边界框的分数或百分比值。默认值为 userSpaceOnUse。 |
primitiveUnits | 用于定义滤镜效果区域的单位。它指定滤镜中各种长度值的坐标系以及定义滤镜子区域的属性。如果 filterUnits=“userSpaceOnUse”,则值表示在使用 'filter' 元素时当前用户坐标系中的值。如果 filterUnits=“objectBoundingBox”,则值表示在使用 'filter' 元素时引用元素上边界框的分数或百分比值。默认值为 userSpaceOnUse。 |
x | 滤镜边界框的 x 轴坐标。Defeault 为 0。 |
y | 滤镜边界框的 y 轴坐标。默认值为 0。 |
width | 滤镜边界框的宽度。默认值为 0。 |
height | 滤镜边界框的高度。默认值为 0。 |
filterRes | 表示筛选区域的数字。 |
xlink:href | 用于引用另一个滤镜。 |
例
- 两个 <filter> 元素定义为 filter1 和 filter2。
- feGaussianBlur 滤镜效果使用 stdDeviation 定义具有模糊量的模糊效果。
- in=“SourceGraphic” 定义效果适用于整个元素。
- feOffset 滤镜效果用于创建阴影效果。in=“SourceAlpha” 定义该效果适用于 RGBA 图形的 Alpha 部分。
- <rect> 元素使用 filter 属性链接滤镜。
在 Chrome Web 浏览器中打开 textSVG.htm。您可以使用 Chrome/Firefox/Opera 直接查看 SVG 图像,无需任何插件。Internet Explorer 9 及更高版本还支持 SVG 图像渲染。
使用阴影效果进行滤镜
输出
在 Chrome Web 浏览器中打开 textSVG.htm。您可以使用 Chrome/Firefox/Opera 直接查看 SVG 图像,无需任何插件。Internet Explorer 9 及更高版本还支持 SVG 图像渲染。