注意:Internet Explorer和Safari不支持SVG滤镜

<defs>、<filter>

所有互联网的SVG滤镜定义在<defs>元素中,<filter>标签用来定义SVG滤镜,<filter>标签使用必须的ID属性来定义向图形应用到那个滤镜中

SVG模糊效果

<feGaussianBlur>

feGaunssianBlur元素是用于创建模糊效果

SVG代码:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1"
x="0" y="0">
     
<feGaussianBlur in="SourceGraphic" stdDeviation="15"
/>
    </filter>
  </defs>
  <rect width="90"
height="90" stroke="green" stroke-width="3"
  fill="yellow"
filter="url(#f1)" />
</svg>

代码解析:

<filter>元素id属性定义一个滤镜的唯一名称

<feCaussianBlur>元素定义模糊效果

in="SourceGraphic"这个部分定义了由整个图像创建效果

stdDeviation属性定义模糊量

<rect>元素的滤镜属性用来把元素链接到“f1”滤镜

SVG阴影

<feOffset>

feOffset元素用于创建阴影效果

实例1

偏移一个矩形(带<feOffset>),然后混合偏移图像顶部(含<feBlend>)

SVG代码:

<svg xmlns="http://www.w3.org/2000/svg"
version="1.1">
  <defs>
    <filter id="f1"
x="0" y="0" width="200%"
height="200%">
      <feOffset
result="offOut" in="SourceGraphic" dx="20"
dy="20" />
      <feBlend
in="SourceGraphic" in2="offOut" mode="normal"
/>
    </filter>
  </defs>
  <rect width="90"
height="90" stroke="green" stroke-width="3"
  fill="yellow"
filter="url(#f1)" />
</svg>

实例2

偏移图像可以变的模糊(含<feGaussianBlur>)

SVG代码:

<svg
xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1"
x="0" y="0" width="200%"
height="200%">
      <feOffset
result="offOut" in="SourceGraphic" dx="20"
dy="20" />
     
<feGaussianBlur result="blurOut" in="offOut"
stdDeviation="10" />
      <feBlend
in="SourceGraphic" in2="blurOut" mode="normal"
/>
    </filter>
  </defs>
  <rect width="90"
height="90" stroke="green" stroke-width="3"
  fill="yellow"
filter="url(#f1)" />
</svg>

代码解析

元素的stdDeviation属性定义了模糊量

实例3

制作一个黑色的阴影

SVG代码:

<svg
xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1" x="0"
y="0" width="200%" height="200%">
      <feOffset
result="offOut" in="SourceAlpha" dx="20"
dy="20" />
     
<feGaussianBlur result="blurOut" in="offOut"
stdDeviation="10" />
      <feBlend
in="SourceGraphic" in2="blurOut" mode="normal"
/>
    </filter>
  </defs>
  <rect width="90"
height="90" stroke="green" stroke-width="3"
  fill="yellow"
filter="url(#f1)" />
</svg>

代码解析:

feOffset元素的属性改为"SourceAlpha"在Alpha通道使用残影,而不是整个RGBA像素

实例4

为阴影涂上一层颜色

SVG代码:

<svg
xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1"
x="0" y="0" width="200%"
height="200%">
      <feOffset
result="offOut" in="SourceGraphic" dx="20"
dy="20" />
      <feColorMatrix
result="matrixOut" in="offOut" type="matrix"
      values="0.2
0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" />
     
<feGaussianBlur result="blurOut" in="matrixOut"
stdDeviation="10" />
      <feBlend
in="SourceGraphic" in2="blurOut" mode="normal"
/>
    </filter>
  </defs>
  <rect width="90"
height="90" stroke="green" stroke-width="3"
  fill="yellow"
filter="url(#f1)" />
</svg>

学习SVG系列(4):SVG滤镜效果的更多相关文章

  1. 学习SVG系列(5):SVG渐变

    SVG渐变 渐变是一种从一种颜色到另一种颜色的平滑过渡,可以把多个颜色的过渡应用到同一个元素. 渐变有两种: Linear Redial 线性渐变-<linearGradient> lin ...

  2. 学习SVG系列(3):SVG Stroke属性

    SVG stroke 属性 1.stroke 2.stroke-width 3.stroke-linecap 4.stroke-dasharray 5.stroke-opacity 6.stroke- ...

  3. 学习SVG系列(1):SVG基础

    什么是SVG? 1.指可伸缩矢量图形 2.用来定义用于网络的基于矢量的图形 3.使用XML格式定义图形 4.图像在放大或改变尺寸的情况下其图形不会有所损失 5.万维网联盟的标准, 用于描述二维矢量图形 ...

  4. SVG系列教程:SVG简介与嵌入HTML页面的方式

    地址:http://www.w3cplus.com/html5/svg-introduction-and-embedded-html-page.html 随着技术向前的推进,SVG相关的讨论也越渐频繁 ...

  5. HTML5 学习03——内联 SVG

    什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...

  6. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  7. 【翻译svg教程 】svg 的坐标系统

    http://tutorials.jenkov.com/svg/svg-coordinate-system.html svg的坐标系统(和大多数计算机绘图的坐标系统)和数学中绘图系统有点不一样 数学/ ...

  8. Nagios学习实践系列——基本安装篇

    开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...

  9. Nagios学习实践系列——配置研究[监控当前服务器]

    其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...

随机推荐

  1. effective java —— 终结方法守卫者

    目录: effective java —— 终结方法守卫者 effective java 第2章:创建和销毁对象.第7条 : 避免使用终结方法.最后的“终结方法守卫者 (finalizer guard ...

  2. shell算数运算

    ((i=$j+$k))    等价于 i=`expr $j + $k`((i=$j-$k))     等价于   i=`expr $j -$k`((i=$j*$k))     等价于   i=`exp ...

  3. MVC5+EF6 入门完整教程五

    上篇文章介绍了EF实现CRUD及一些基本的Html Helpers. 这次我们将会对之前的内容进行一些修改和重构: 引入Bootstrap样式,搭建几类共用的模板页,对UI进行一些改造 分类介绍Htm ...

  4. 360浏览器兼容模式默认显示ie最高版本

    之前写完代码都会放在360浏览器里跑一边,基本没啥问题,因为设置的都是极速模式,极速模式内置的是webkit内核,后来测试人员测试了兼容模式,发现会出各种问题,打开控制台一看,“我的天呐”,默认的竟然 ...

  5. 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法

    这段时间一直比较忙,一忙起来真感觉自己就只是一台挣钱的机器了(说的好像能挣到多少钱似的,呵呵):这会儿难得有点儿空闲时间,想把前段时间开发微信公众号支付遇到问题及解决方法跟大家分享下,这些“暗坑”能不 ...

  6. SpringAOP实现(原理)

    AOP原理: AOP分为:JDK动态代理和CGLIB代理 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了.              注 ...

  7. C# 发送HttpWebRequest获得网络图片的大小、尺寸

    可以通过HttpWebRequest的方式发送一个网络图片的请求,再通过HttpWebResponse接收返回的数据,分析数据流得到图片的大小以及尺寸,代码如下: /// <summary> ...

  8. 对copy、mutableCopy理解

    Objective - C 中有很多在日常项目中经常用到的常用代码,在这里着重的讲一下关于copy 和 mutableCopy 的区别以及相关用法. Objective - C 中可变对象和不可对象经 ...

  9. POJ 3415 Common Substrings 后缀数组+并查集

    后缀数组,看到网上很多题解都是单调栈,这里提供一个不是单调栈的做法, 首先将两个串 连接起来求height   求完之后按height值从大往小合并.  height值代表的是  sa[i]和sa[i ...

  10. leetcode6

    好吧,今天晚上赶项目确实是做不了三道题目了,最近项目在网络编程方面有些进步,学到了东西,有时间再积累下来,很深的体会就是,和别人一起写代码,虽然蛋疼但是比自己一个人写要好点,不过发现自己对链表和排序什 ...