zoukankan      html  css  js  c++  java
  • 学习SVG系列(4):SVG滤镜效果

    注意: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>

  • 相关阅读:
    shell截取字符串的方法
    安装sql server managerment studio报错"The instance id is required but it is missing"
    windows 80端口被占用的解决方法
    centos如何安装软件
    ORA-00257归档日志写满的解决方法
    VCenter克隆虚拟机报错msg.snapshot.error-QUIESCINGERROR
    如何启动或关闭oracle的归档(ARCHIVELOG)模式
    ubuntu下nagios配置
    vsphere vcenter server下安装ubuntu的vmwaretools
    virtualbox迁移至vcenter/vmware workstation
  • 原文地址:https://www.cnblogs.com/laimeier/p/4146098.html
Copyright © 2011-2022 走看看