请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2023-10-12 22:28 编辑
feImage 滤镜从外部来源获得图像数据并将图像输出到滤镜引用者。x、y 属性表示 feImage 滤镜作用于对象的XY坐标,width、height 属性表示滤镜所使用图像将呈现的宽高尺寸,href 属性(也可写成 xlink:href)为外部来源的图片地址,还有 result 快照属性等。后面的示例,使用了如下图片:

上面的图片尺寸为 130*127,现在,我们要在 400*200 的 svg 画布上绘制一个矩形,矩形尺寸 300*150 ,填充色是卡其色,然后通过 feImage 滤镜将上面展示的图片以 100*100 的尺寸放置其上。先看效果:
再看代码:
<svg width="400" height="200">
<filter id="image">
<feImage x="6" y="6" width="100" height="100" xlink:href="../player/img/hshx.png" result="img" />
<feMerge>
<feMergeNode in="SourceGraphic" />
<feMergeNode in="img" />
</feMerge>
</filter>
<rect x="0" y="0" width="300" height="150" fill="khaki" filter="url(#image)" />
</svg>
代码中,我们创建了一个 filter 滤镜,id 标识为 image:里面首先使用一个 feImage 滤镜,它从{6,6}开始发生作用,作用宽高都是100px,它引入一个外部图像(支持外部svg图像),滤镜快照名为 img。接着,使用 feMerge 合并滤镜,将整个整个图形(in="SourceGraphic")和快照名为 img 的 feImage 滤镜叠加在一起。最后,rect 矩形标签调用该滤镜(filter="url(#image)"),就得出前面所展示的效果。这里提示一下:如果不使用合并滤镜,则 rect 矩形标签的 fill 属性所规定的填充色将不起作用,整个矩形的背景只有左上角的图标,可见合并滤镜在 svg 滤镜中的重要性。
|