简介
SVG 滤镜广泛用于向位图或矢量图形添加特殊效果。滤镜效果是在文档中显示之前对视觉元素进行处理的一种方式。换句话说,它是一组应用于图像的操作,可以产生各种颜色和灯光效果、模糊、扭曲、噪声和纹理生成等。SVG 滤镜能够在浏览器中创建复杂的效果,并具有在各种项目中使用的潜力。几乎所有现代浏览器(包括移动浏览器)都支持它们。
过滤器由在defs元素内设置的filter元素定义。它永远不会自行渲染,并且在概念上被描述为包含其子元素的元素 – 过滤器基元。 filter 元素有一组属性,以下是其中一些:x、y、width、height、filterUnits、primitiveUnits、 core attributes, presentation attributes。
SVG 滤镜
每个过滤器基元都会进行单个图形操作,产生可见的结果。 SVG 滤镜的优点是能够组合多种类型。应用一个滤镜后获得的结果可以作为另一滤镜的图像来源。
过滤器基元所需的属性为x、y、width 和 height。他们设置将应用滤镜的图片区域。每个过滤器原语可以接受一个或两个输入并仅输出一个结果。过滤器原语的输入数据在 in 属性中指定。默认值是 in=“SourceGraphic”。操作的输出在 result 属性中定义。
每个过滤器都需要一个源图像来处理。否则,过滤器将没有任何内容可渲染,因此无法工作。所有滤镜原语均在 SVG Filter specification 中定义。