svg基础(五)滤镜-高斯模糊,混合模式,偏移,颜色变换

1 作用

滤镜用于对SVG图形增加特殊效果

2 效果

  • feBlend - 与图像相结合的滤镜
  • feColorMatrix - 用于彩色滤光片转换
  • feComponentTransfer
  • feComposite
  • feConvolveMatrix
  • feDiffuseLighting
  • feDisplacementMap
  • feFlood
  • feGaussianBlur 高斯模糊
  • feImage
  • feMerge
  • feMorphology
  • feOffset - 过滤阴影
  • feSpecularLighting
  • feTile
  • feTurbulence
  • feDistantLight - 用于照明过滤
  • fePointLight - 用于照明过滤
  • feSpotLight - 用于照明过滤

2.1 feGaussianBlur:高斯模糊

in="SourceGraphic"属性定义了模糊效果要应用于整个图片

stdDeviation:属性定义了模糊的程度

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0"><feGaussianBlur in="SourceGraphic" stdDeviation="20" /></filter></defs><rect width="100" height="100" stroke="red" stroke-width="5"fill="orange" filter="url(#f1)" />
</svg>

在这里插入图片描述

2.2 feBlend:混合模式

允许使用任意的JPG\PNG\SVG文件或带有id属性SVG元素作为输入源

五种模式:

  1. normal — 正常
  2. multiply — 正片叠底
  3. screen — 滤色
  4. darken — 变暗
  5. lighten— 变亮

原图:
在这里插入图片描述
在这里插入图片描述

正常混合:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="ga" x="0" y="0" width="200" height="250"><feImage width="200" height="250" xlink:href="image.png" result="img1" /><feImage width="200" height="250" xlink:href="image2.png" result="img2" /><feBlend mode="normal" in="img1" in2="img2" /></filter></defs><rect x="10" y="10" width="200" height="250" fill="black" filter="url(#ga)"></rect></svg>

在这里插入图片描述

正片叠底:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="ga" x="0" y="0" width="200" height="250"><feImage width="200" height="250" xlink:href="image.png" result="img1" /><feImage width="200" height="250" xlink:href="image2.png" result="img2" /><feBlend mode="multiply" in="img1" in2="img2" /></filter></defs><rect x="10" y="10" width="200" height="250" fill="black" filter="url(#ga)"></rect></svg>

在这里插入图片描述

滤色:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="ga" x="0" y="0" width="200" height="250"><feImage width="200" height="250" xlink:href="image.png" result="img1" /><feImage width="200" height="250" xlink:href="image2.png" result="img2" /><feBlend mode="screen" in="img1" in2="img2" /></filter></defs><rect x="10" y="10" width="200" height="250" fill="black" filter="url(#ga)"></rect></svg>

在这里插入图片描述

变暗:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="ga" x="0" y="0" width="200" height="250"><feImage width="200" height="250" xlink:href="image.png" result="img1" /><feImage width="200" height="250" xlink:href="image2.png" result="img2" /><feBlend mode="darken" in="img1" in2="img2" /></filter></defs><rect x="10" y="10" width="200" height="250" fill="black" filter="url(#ga)"></rect></svg>

在这里插入图片描述

变亮:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="ga" x="0" y="0" width="200" height="250"><feImage width="200" height="250" xlink:href="image.png" result="img1" /><feImage width="200" height="250" xlink:href="image2.png" result="img2" /><feBlend mode="lighten" in="img1" in2="img2" /></filter></defs><rect x="10" y="10" width="200" height="250" fill="black" filter="url(#ga)"></rect></svg>

2.3 feOffset:偏移

2.3.1 偏移

  <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0"><feOffset result="offOut" in="SourceGraphic" dx="30" dy="30" /><feBlend in="SourceGraphic" in2="offOut" mode="normal" />//混合偏移图像顶部</filter></defs><rect width="100" height="100" stroke="red" stroke-width="3"fill="yellow" filter="url(#f1)" /></svg>

在这里插入图片描述

2.3.2 偏移并模糊(阴影)

  <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="150%" height="150%"><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="red" stroke-width="3"fill="orange" filter="url(#f1)" /></svg>

在这里插入图片描述

2.3.3 偏移并模糊(黑色阴影)

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="150%" height="150%"><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="100" height="100" stroke="red" stroke-width="3"fill="orange" filter="url(#f1)" /></svg>

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

在这里插入图片描述

2.3.4 偏移并模糊(黑色阴影+颜色转换)

 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f2" x="0" y="0" width="150%" height="150%"><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="100" height="100" stroke="red" stroke-width="3"fill="orange" filter="url(#f2)" /></svg>

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

在这里插入图片描述

2.4 feColorMatrix :颜色变换

用来以一种通用的方式改变颜色值,可以用来创建一个发光的区域

feColorMatrix是一个通用的基元,允许修改任意像素点的颜色或阿尔法值,当type="matrix"时,必须指定一个4x5的矩阵。矩阵中每行数字分别乘以输入像素的r,g,b,a的值和常量1,然后加在一起得到输出值。要设置一个变换,将所有不透明区域回执为相同颜色,可以忽略输入颜色和常量。

矩阵模型:

values="0    0    0    red    00    0    0    green  00    0    0    blue   00    0    0    1      0
"

red,green,blue的值通常为0到1之间的十进制数,在上述例子中,red为0,green和blue为0.9会产生一个明亮的青色。

上述type为matrxi,除此之外,还有其他三个值:

feColorMatrix的type属性说明
hueRotate色相旋转,value是一个单一的数字,描述颜色的色相值应该被旋转多少度
saturate饱和度,values属性指定一个0到1之间的数字,数字越小,颜色越不饱和
luminanceToAlpha用亮度决定alpha值,这一属性忽略的values属性值
  <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="matrix" x="0" y="0"><feColorMatrix type="matrix" values="0 0 0 0   00 0 0 0.3 00 0 0 0.3 00 0 0 1   0"></feColorMatrix></filter></defs><text x="10" y="100" font-size="40" fill="red" filter=url(#matrix)>svg滤镜</text></svg>

在这里插入图片描述

可以看到文字应用了滤镜颜色

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态时序分析:静态时序分析的原理及其两种模式PBA、GBA

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 静态时序分析有两种模式&#xff1a;PBA(Path Based Analysis)和GBA(Graph Based Analysis)&#xff0c;PBA是基于路径的分析模式而GBA则是基于图的分析模式。在…

Android开发 button 按钮点击两次 响应onclick方法

问题 Android开发 button 按钮点击两次 响应onclick方法 详细问题 笔者xml代码 <!-- 一个按钮 --> <Button android:id"id/button1" android:layout_width"wrap_conten…

基于YOLOv8的暗光低光环境下(ExDark数据集)检测,加入多种优化方式---自研CPMS注意力,效果优于CBAM ,助力自动驾驶(二)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:详细介绍了暗光低光数据集检测整个过程&#xff0c;从数据集到训练模型到结果可视化分析&#xff0c;以及如何优化提升检测性能。 &#x1f4a1;&#x1f4a1;&#x1f4a1;加入 自研CPMS注意力 mAP0.5由原始的0.682提升…

使用CubeMX快速开始STM32微控制器开发

CubeMX是一款由STMicroelectronics提供的集成开发环境&#xff0c;可以帮助开发者快速启动STM32微控制器的开发。屏蔽了底层配置的繁琐&#xff0c;简化了开发流程&#xff0c;减少了开发时间。本文将向您介绍使用CubeMX进行STM32开发的基本步骤&#xff0c;并附上部分示例代码…

2024阿里云GPU服务器租用费用价格表说明

阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用&#xff0c;阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡&#xff0c;GPU云服务器gn6i可享受3折优惠&#xff0c;阿里云百科aliyunbaike.com分享阿里云GPU服务器…

数字图像处理实验记录七(彩色图像处理实验)

一、基础知识 经过前面的实验可以得知&#xff0c;彩色图像中的RGB图像就是一个三维矩阵&#xff0c;有3个维度&#xff0c;它们分别存储着R元素&#xff0c;G元素&#xff0c;B元素的灰度信息&#xff0c;最后将它们合起来&#xff0c;便是彩色图像。 这一次实验涉及CMYK和HS…

信息安全省赛杂项题解题思路

task1 直接查看文件属性即可得到 flag task2 载入 HxD 中&#xff0c;搜索 flag 即可得到 task3 也是同样的操作&#xff0c;载入 HxD 中搜索 flag task4 打开题目的压缩包发现被加密了&#xff0c;这个题目的标题提示的很明显&#xff0c;就是四位数加密 四位数加密的 zip…

课时17:本地变量_命令变量

2.2.3 命令变量 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 基本格式 定义方式一&#xff1a;变量名命令注意&#xff1a; 是反引号定义方式二&#xff1a;变量名$(命令)执行流程&#xff1a;1、执行 或者 $() 范围内的命令…

网络设备如何巡检?这些命令必不可少

一、查看交换机的端口使用情况&#xff1a; dis interface brief查看交换机的哪个端口是万兆端口&#xff0c;以及端口状态&#xff0c;那个端口在使用。 如下图&#xff0c;使用这个命令。 其中端口0/0/1与端口0/0/2处于使用中。其它接口没有使用&#xff1b;如果在实际项目…

Excel——合并计算

1.表格的合并计算&#xff08;单张表格/多个表格&#xff09; Q&#xff1a;请统计两个表格中各商品的总销量和总销售额&#xff0c;将结果放置在下方任意位置。 A&#xff1a;选择一个需要将合并计算数据放置区域的空白单元格 选择【数据】——【合并计算】&#xff0c;【函…

【C++】引用与内联

个人主页 &#xff1a; zxctsclrjjjcph 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 引用2.1 引用概念2.2 引用使用场景2.3 引用特性2.4 引用和指针的区别2.5 传值、传引用效率比较2.5.1 值和引用的作为返回值类型的性能比较 3. 内联函数3.1 …

《游戏引擎架构》 -- 学习2

声明&#xff0c;定义&#xff0c;以及链接规范 翻译单元 声明与定义 链接规范 C/C 内存布局 可执行映像 程序堆栈 动态分配的堆 对象的内存布局 kilobyte 和 kibibyte 流水线缓存以及优化 未完待续。。。