• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > SVG进阶|SVG过滤器(SVG Filters)

SVG进阶|SVG过滤器(SVG Filters)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含SVG进阶,SVG过滤器等相关知识,匿名希望在学习及工作中可以帮助到您


  SVG过滤器可以为SVG图形添加一些非常酷的效果,如阴影、模糊和高光等效果。

  SVG过滤器的例子

  先来看一个简单的SVG过滤器的例子,直观的感受一些它的效果:

<defs>
  <filter id="blurFilter" y="-5" height="40"
      <feGaussianBlur in="SourceGraphic" stdDeviation="3" y="-"/>
  </filter>
</defs>
 
<ellipse cx="55" cy="60" rx="25" ry="15"
  style="stroke: none; fill: #663399; " />
 
<ellipse cx="155" cy="60" rx="25" ry="15"
  style="stroke: none; fill: #663399; filter: url(#blurFilter);" />


  在这个例子中,对一个SVG椭圆形应用了模糊滤镜,得到的结果如下:
990.png
  SVG过滤器的输入和输出

  SVG过滤器在应用过滤效果的时候需要一个输入源。这个输入源可以是一个图形,或图形的alpha通道,或另一个过滤器的输出值。

  SVG过滤器可以从输入源中产生一个输出图像。一个过滤器的输出可以是另一个过滤器的输入,这样,过滤器可以被链接起来使用。

  下面是一张SVG过滤器输入和输出的说明图片:

<defs> <filter id="blurFilter2" y="-10" height="40" x="-10" width="150"> <feOffset in="SourceAlpha" dx="3" dy="3" result="offset2" /> <feGaussianBlur in="offset2" stdDeviation="3" result="blur2"/> <feMerge> <feMergeNode in="blur2" /> <feMergeNode in="SourceGraphic" /> </feMerge> </filter> </defs> <ellipse cx="55" cy="60" rx="25" ry="15" style="stroke: none; fill: #0000ff; filter: url(#blurFilter2);" />


这个例子中创建了一个SVG过滤器,它包括两个滤镜元素:<feOffset>和<feGaussianBlur>。偏移滤镜的输入源是椭圆图形的alpha通道,高斯模糊滤镜的输入源是偏移滤镜的输出。

<feMerge>元素将原始图像和高斯模糊滤镜的输出相结合。在<feMerge>元素中的结合顺序决定了它们的显示顺序,后输入的元素会显示在先输入元素的上面。


  上面的代码得到的结果类似于一个drop阴影效果,下面是输出的结果:
992.png
  高斯模糊滤镜

  SVG高斯模糊滤镜可以将图像进行模糊处理。要使用高斯模糊滤镜,可以使用元素。下面是一个例子:

<defs>
    <filter id="blurFilter4" x="-20" y="-20" width="200" height="200">
        <feGaussianBlur in="SourceGraphic" stdDeviation="10" />
    </filter>
</defs>
<rect x="20" y="20" width="90" height="90"
      style="stroke: none; fill: #00ff00; filter: url(#blurFilter4);" />



 这个例子中,在<filter>元素中使用了<feGaussianBlur>滤镜。在矩形元素中的style属性中使用filter来指向这个SVG过滤器,得到的结果如下面图像所示:  


993.png

模糊的尺寸

  <feGaussianBlur>元素的stdDeviation属性决定图像的模糊尺寸大小。它的数值越大,图像的模糊尺寸越大。在下面的例子中分别设置了三个不同的stdDeviation值。

<defs>
    <filter id="blurFilter5" x="-20" y="-20" width="200" height="200">
        <feGaussianBlur in="SourceGraphic" stdDeviation="2" />
    </filter>
    <filter id="blurFilter6" x="-20" y="-20" width="200" height="200">
        <feGaussianBlur in="SourceGraphic" stdDeviation="6" />
    </filter>
    <filter id="blurFilter7" x="-20" y="-20" width="200" height="200">
        <feGaussianBlur in="SourceGraphic" stdDeviation="12" />
    </filter>
</defs>
 
<rect x="20" y="24" width="90" height="90"
      style="stroke: none; fill: #00ff00; filter: url(#blurFilter5);" />
<rect x="150" y="24" width="90" height="90"
      style="stroke: none; fill: #00ff00; filter: url(#blurFilter6);" />
<rect x="300" y="24" width="90" height="90"
      style="stroke: none; fill: #00ff00; filter: url(#blurFilter7);" />


 得到的返回结果如下:


994.png

  通过ALPHA通道进行模糊

  在上面的例子中,过滤器的输入源是SourceGraphic,意思是使用图形的RGB颜色来作为输入源。你也可以使用图形的alpha通道来作为输入源,只需要将<feGaussianBlur>元素的in属性设置为SourceAlpha即可。下面是一个例子:

<defs>
    <filter id="blurFilter8" x="-20" y="-20" width="200" height="200">
        <feGaussianBlur <b>in="SourceAlpha"</b> stdDeviation="10" />
    </filter>
</defs>
<rect x="20" y="20" width="90" height="90"
      style="stroke: none; fill: #00ff00; filter: url(#blurFilter8);" />



  得到的返回结果如下:
995.png
  注意观察,矩形的填充色是绿色的,但是通过alpha通道来进行模糊之后,得到的结果是黑白色的图像。

  偏移滤镜

  偏移滤镜会将输入图形进行移动之后作为结果输出。你可以使用它来上下左右移动图形。通常偏移滤镜都是用于制作drop阴影效果。下面是一个例子:

<defs>
    <filter id="offsetFilter1" x="-20" y="-20" width="200" height="200">
        <feOffset in="SourceGraphic" dx="80" dy="20" />
    </filter>
</defs>
<rect x="20" y="20" width="90" height="90"
     
  


 

您可能想查找下面的文章:

  • SVG进阶|SVG渐变(SVG GRADIENTS)
  • SVG进阶|SVG过滤器(SVG Filters)
  • SVG进阶|SVG剪裁路径

相关文章

  • 2018-12-03使用HTML5 Canvas API绘制弧线的教程_html5教程技巧
  • 2018-12-03Html5 Canvas初探学习笔记(6) -变换
  • 2018-12-03深入理解html5中的position
  • 2018-12-03分享一个利用HTML5制作的海浪效果代码
  • 2018-12-03跟随鼠标炫酷网站引导页的html5动画特效
  • 2018-12-03MyEclips如何使用?MyEclips实例用法总结
  • 2018-12-03HTML5—浏览器支持问题
  • 2018-12-03Android本地应用打开方法——通过html5写连接 _html5教程技巧
  • 2017-08-06HTML5的结构和语义(2):结构
  • 2017-08-06Html5实现二维码扫描并解析

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5 canvas实现画图程序(附代码)
    • HTML5漫谈(2)–HTML5为什么这样红?
    • 百度糯米app中关闭网页或窗口的方法,99%的人都不知道,网上也找不到
    • html5适合移动应用开发的12大特性
    • 一波HTML5 Canvas基础绘图实例代码集合_html5教程技巧
    • HTML5实战与剖析之移动端IOS系统收缩地址导航栏功能
    • 关于动画应用的6篇文章推荐
    • HTML5的五大优秀功能介绍
    • HTML参考
    • HTML5每日一练之Canvas标签的应用-绘制向日葵

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有