<defs>元素是定义的标签,包含特殊元素的定义。

<filter>元素用于定义svg滤镜。具有必需的id属性,用于标识滤镜,相当于定义一个过滤器

<feOffset>元素用于定义创建阴影效果;想法是拍摄svg图形并将其在xy平面中移动一点,然后将原始图像混合在偏移图像的顶部。

<feGaussianBlur>元素定义模糊滤镜

<feColorMatrix>过滤器是用来转换偏移的图像使之更接近黑色的颜色。'0.2"矩阵的三 个值都获取乘以红色,绿色和蓝色通道。降低其值带来的颜色至黑色(黑色为0)

代码 

<svg><!-- 定义标签 --><defs><!-- 过滤标签 --><filter id="a1" width="200%" height="200%" ><!-- 使用偏移滤镜 --><feOffset in="SourceGraphic" result="off" dx="10" dy="10"/><!-- 用来转换偏移的图像使之更接近于黑色的颜色feColorMatrix 通过values属性来控制阴影颜色 --><feColorMatrix in="off"type="matrix"result="colorMatrix"values="0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.2 0 0 0 0 0 1 0"/><!-- 模糊滤镜 stdDeviation:设置模糊度 --><feGaussianBlur in="colorMatrix" result="out" stdDeviation="5"/><!-- 使用混合滤镜,主要是将原始标签显示出来 --><feBlend  in="SourceGraphic" in2="out" mode="normal"/><!-- 注:in在上层,in2在下层 --></filter></defs><rect x="20" y="20" width="100" height="100" stroke="green" fill="yellow" filter="url(#a1)"/></svg>

in、in2标识为给定的滤镜原始输入:SourceGraphic / SourceAlpha / Backgroundlmage / BackaroundAloha / FillPaint / StrokePaint / <filter-primitive-reference>

滤镜的种类

滤镜有:
feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feFlood
feGaussianBlur
feImage
feMerge
feMorphology
feOffset
feSpecularLighting
feTile
feTurbulence
feDistantLight
fePointLight
feSpotLight

滤镜的属性:

属性                作用

x,y                提供左上角的坐标来定义在哪里渲染滤镜效果(默认值:0)

width,height  绘制滤镜容器框的高宽(默认值都为1:00%)

result                用于定义一个滤镜效果的输出名字,以便将其用作另一个滤镜效果的输入(in)

in                     指定滤镜效果的输入源,可以是某个滤镜导出的result,也可以是下面的六个值 ↓

in的六个值:

SourceGraphic: 该关键词表示图形元素自身将作为<filter>原语的原始输入

SourceAlpha: 该关键词表示图形元素自身将作为〈filter>原语的原始输入。SourceAlpha与SourceGraphic具有相同的规则除了SourceAlpha只使用元素的非透明部分

Backgroundlmage:与 SourceGraphic类似,但可在背景上使用。需要显式设置

BackgroundAlpha:与SourceAlpha类似,但可在背景上使用。需要显式设置

FillPaint: 将其放置在无限平面上一样使用填充油漆

StrokePaint: 将其放在无限平面上一样使用描边绘画

SVG 中的混合模式种类比 CSS 中的要少一些,只有 5 个,其作用与 CSS 混合模式完全一致:

  • normal — 正常
  • multiply — 正片叠底
  • screen — 滤色
  • darken — 变暗
  • lighten— 变亮

SVG渐变

渐变是一种从一种颜色到另一种颜色的平滑过渡。另外,可以把多个颜色的过渡应用到同一个元素上。SVG渐变主要有两种类型:

Linear-线性的

Radial-径向的

线性渐变

<linearGradient>元素用于定义线性渐变。

linearGradient元素必须嵌套在<defs>标记内;<defs>标签是定义的缩写,包含特殊元素(例如渐变)的定义。

线性渐变可以定义为水平,垂直或角度渐变;

当y1和y2相等且x1和x2不同时,将创建水平渐变

当x1和×2相等且y1和y2不同时,将创建垂直渐变

当x1和×2不同且y1和y2不同时,将到建角度渐变

示例

<svg width="800" height="800"><defs><!-- 定义线性渐变 --><linearGradient id="a1"x1="0%" y1="0%"x2="100%" y2="0%"spreadMethod=""><!-- 设置渐变色 使用stop --><stop offset="30%" stop-color="red"/><stop offset="60%" stop-color="yellow"/><stop offset="100%" stop-color="red"/></linearGradient></defs><rect x="50" y="50" width="200" height="200" stroke="red" fill="url(#a1)"/></svg>

效果图

径向渐变

<radialGradient>元素用于定义放射性渐变。

radialGradient标签必须嵌套在<defs>的内部。<defs>标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。

adialGradient标签的id属性可为渐变定义一个唯一的名称.cx,cy和r属性定义的最外层圆和Fx和Fy定义的最内层圆

渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个<stop>标签指定。offset属性用来定义渐变色开始和结束

填充属性把ellipse元素链接到此渐变

示例2

<svg width="800" height="800"><defs><!-- 定义径向渐变 --><radialGradient id="a2" cx="50%" cy="50%"fx="50%" fy="50%" r="50%"><!-- 设置渐变色 使用stop --><stop offset="50%" stop-color="red"/><stop offset="100%" stop-color="pink"/></radialGradient></defs><rect x="250" y="50" width="200" height="200" stroke="red" fill="url(#a2)"/></svg>

效果图2

SVG阴影滤镜及渐变基础相关推荐

  1. SVG阴影、渐变、滤镜

    一.理解SVG阴影 1.<defs>和<filter> 所有Internet SVG滤镜都在<defs>元素中定义. <defs>元素是定义的缩写.包含 ...

  2. SVG阴影、滤镜、渐变

    一.SVG阴影 <defs>和<filter> 所有lnternst 滤镜都在<defs>元素中定义. <defs>元素是定义的缩写,包含特殊元素(例如 ...

  3. SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性

    SVG 阴影 注意: Internet Explorer和Safari不支持SVG滤镜! <defs> 和 <filter> 所有互联网的SVG滤镜定义在<defs> ...

  4. SVG 阴影 SVG 渐变 SVG 动画

    1 SVG 阴影 1.1 <defs> SVG 允许我们定义以后需要重复使用的图形元素.建议把所有需要再次使用的引用元素定义在 <defs> 元素里面.这样做可以增加 SVG ...

  5. SVG阴影、渐变,文字

    SVG 阴影 注意: Internet Explorer和Safari不支持SVG滤镜! <defs>和 <filter> 所有互联网的SVG滤镜定义在<defs> ...

  6. svg 阴影渐变动画

    svg 阴影渐变动画 SVG 允许我们定义以后需要重复使用的图形元素.建议把所有需要再次使用的引用元素定义在 <defs> 元素里面. <filter> 元素作用是作为原子滤镜 ...

  7. css滤镜属性渐变_使用滤镜对CSS渐变进行动画处理

    css滤镜属性渐变 Officially, gradients can't yet be animated. However, using CSS filters, you can animate t ...

  8. 图像滤镜艺术--编码基础(Photoshop基础变换的代码实现)

    原文:图像滤镜艺术--编码基础(Photoshop基础变换的代码实现) 自从上一篇博客写完之后,到现在已经有段时间了,这段时间不是不想接着写,只是想做的更好了在写出来给大家看呵呵. 今天,我将给大家介 ...

  9. H5:画布Canvas基础知识讲解(三)之文字、阴影、颜色渐变

    上一节介绍了H5:画布Canvas基础知识讲解(二)之插入图像.像素级操作,接下来继续讲解H5:画布Canvas基础. 文字 虽然最近的WebKit版本和Firefox 3.1 nightly bui ...

最新文章

  1. 9月第1周安全回顾 IM安全威胁严重 企业增加无线安全投入
  2. 3-4 第三天 Generator生成器
  3. Android MVC模式在android系统中的体现
  4. java string类api_java基础—String类型常用api
  5. 光端机的原理和使用范围
  6. 二、scrapy爬虫框架——scrapy构造并发送请求
  7. 内容生态搜索趋势研究报告
  8. day001-html知识点总结(二)不常见但很重要的元素汇总
  9. Microsoft Surface--Bing™ Maps WPF Control
  10. windows server2008服务器文件上传受限制怎么办,windows server 2008 服务器上传限制
  11. python菜鸟教程100例-Python 练习实例14
  12. python yield理解_Python3 中 Yield 理解与使用
  13. MySQL性能优化设置
  14. Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系
  15. 锤子发布会2018的四个环节概述
  16. CAD转图片,怎么转换成PNG图片?
  17. MySQL安装、MariaDB安装
  18. 解决微信开发者工具的不信任问题
  19. 浏览器兼容性测试及常见问题
  20. Minecraft MOD 开发记录

热门文章

  1. PDH与SDH的区别
  2. 一幅图真正理解LSTM、BiLSTM
  3. 切身经历,经理都慌了!云服务器连接成功蓝屏,桌面没有任何图标显示
  4. 2010年北邮网研院复试上机题目
  5. CSS使图片变模糊,亲测非常好用
  6. 产品经理深入浅出学习笔记
  7. QNX驱动开发——SD卡SD模式开发实录
  8. 世界十大健康食品和十大垃圾食品
  9. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】
  10. 巴菲特致股东的一封信:1980年