前言
虽然SVG不是一种位图描述语言,佴它仍然允许我们使用一些相同的工具,比如滤镜。当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上;在某一时刻,阅读器程 序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上。
例如我们用SVG的元素指定一组操作(也称作基元,primitive),在对象的旁边显示一个模糊的投影,然后把这个滤镜附加给一个对象。由于图片在显示样式中用了滤镜,所以SVG不会将图片直接渲染为最终图形。相反,SVG会渲染图片的像素到临时位图中。由滤镜指定的操作会被应用到该临时区域,其结果会被渲染为最终图形。
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1000">
<defs>
<filter id="shadow" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="20" result="blur"></feGaussianBlur>
<feOffset in="blur" dx="10" dy="10" result="offsetBlur"></feOffset>
<feMerge>
<feMergeNode in="offsetBlur"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>