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    0
    0    0    0    green  0
    0    0    0    blue   0
    0    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   0
                0 0 0 0.3 0
                0 0 0 0.3 0
                0 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.mfbz.cn/a/378649.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VBA中类的解读及应用第九讲:用WithEvents关键字声明实例化对象类变量

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

nacos配置自动刷新源码解析

文章目录 一、前言二、源码解析1、nacos客户端如何监听服务端配置变化的2、ConfigurationProperties注解的bean是如何自动刷新的3、RefreshScope 注解的bean是如何自动刷新的 三、总结 一、前言 最近好奇 nacos 是怎么做到配置自动刷新的&#xff0c;于是就去debug跟了下源码&…

LeetCode 0993. 二叉树的堂兄弟节点:深度优先搜索(BFS)

【LetMeFly】993.二叉树的堂兄弟节点&#xff1a;深度优先搜索(BFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/cousins-in-binary-tree/ 在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个…

C语言:操作符详解

创作不易&#xff0c;给个三连吧&#xff01;&#xff01; 一、算术操作符 C语言中为了方便计算&#xff0c;提供了算数操作符&#xff0c;分别是:,-,*,/,% 由于这些操作符都是有两个操作数&#xff08;位于操作符两边&#xff09;&#xff0c;所以这种操作符也叫做双目操作…

114.乐理基础-五线谱-快速识别五线谱的谱号

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;113.乐理基础-五线谱-五线谱的调号&#xff08;二&#xff09;-CSDN博客 15个调号&#xff0c;如下图&#xff0c;该怎样才能随便拿出一个来就能快速的知道这是什么调号呢&#xff1f; 一共分为三个要点&#xff1…

【芯片设计- RTL 数字逻辑设计入门 11 -- 移位运算与乘法】

请阅读【嵌入式开发学习必备专栏 】 文章目录 移位运算与乘法Verilog Codeverilog 拼接运算符&#xff08;{}&#xff09;Testbench CodeVCS 波形仿真 问题小结 移位运算与乘法 已知d为一个8位数&#xff0c;请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输…

Redis篇之分布式锁

一、为什么要使用分布式锁 1.抢劵场景 &#xff08;1&#xff09;代码及流程图 &#xff08;2&#xff09;抢劵执行的正常流程 就是正好线程1执行完整个操作&#xff0c;线程2再执行。 &#xff08;3&#xff09;抢劵执行的非正常流程 因为线程是交替进行的&#xff0c;所以有…

python适配器模式开发实践

1. 什么是适配器设计模式&#xff1f; 适配器&#xff08;Adapter&#xff09;设计模式是一种结构型设计模式&#xff0c;它允许接口不兼容的类之间进行合作。适配器模式充当两个不兼容接口之间的桥梁&#xff0c;使得它们可以一起工作&#xff0c;而无需修改它们的源代码。 …

[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)

目录 一、匿名管道 1.什么是管道&#xff1f;什么是匿名管道&#xff1f; 2.怎么创建匿名管道&#xff08;函数&#xff09; 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道&#xff1f;匿名管道有什么用&#xff1f;&#xff08;例子&#xff09; 二、命名…

机器人运动学林沛群——旋转矩阵

旋转矩阵 基本概念 三个主轴&#xff0c;可以看作是三个向量&#xff0c;为b在a的表达&#xff0c;以a为基准 旋转矩阵 B相对于A的姿态&#xff1a; B A R [ A X B ^ A Y B ^ A Z B ^ ] [ X ^ B ⋅ X ^ A Y ^ B ⋅ X ^ A Z ^ B ⋅ X ^ A X ^ B ⋅ Y ^ A Y ^ B ⋅ Y ^ A Z …

部署一个自己的P站

效果 安装 1.拉取代码 cd /opt git clone https://gitee.com/WangZhe168_admin/logoly.git 2.安装依赖 cd logoly npm install 3.启动 npm run serve 愉快地使用吧

删除和清空Hive外部表数据

外部表和内部表区别 未被external修饰的是内部表&#xff08;managed table&#xff09;&#xff0c;被external修饰的为外部表&#xff08;external table&#xff09;&#xff1b; 区别&#xff1a; 内部表数据由Hive自身管理&#xff0c;外部表数据由HDFS管理&#xff1b; …

【网站项目】031网络游戏公司官方平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

详解计算机软件基本概念

软件基本概念 软件的定义 一个完整的计算机系统是由硬件系统和软件系统协同工作来完成某一给定的任务的。 只有硬件的计算机称为裸机&#xff0c;裸机必须安装了计算机软件后才可以完成各项任务。 从广义地讲&#xff0c;软件是指计算机程序、数据以及开发、使用和维护程序…

初识 Protobuf 和 gRpc

初步了解 Protobuf 和 gRpc Protocol Buffers Protocol Buffers&#xff08;又称protobuf&#xff09;是谷歌的语言无关、平台无关、可扩展的机制&#xff0c;用于序列化结构化数据。您可以在protobuf的文档中了解更多关于它的信息。 ProtoBuf 的定义 ProtoBuf是将类的定义…

如何在Linux上部署1Panel运维管理面板并实现无公网ip远程访问

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

【大数据】Flink on YARN,如何确定 TaskManager 数

Flink on YARN&#xff0c;如何确定 TaskManager 数 1.问题2.并行度&#xff08;Parallelism&#xff09;3.任务槽&#xff08;Task Slot&#xff09;4.确定 TaskManager 数 1.问题 在 Flink 1.5 Release Notes 中&#xff0c;有这样一段话&#xff0c;直接上截图。 这说明从 …

【lesson48】进程通信之system V(信号量)

文章目录 信号量理解 信号量理解 为了进程通信—>我们需要让不同的进程看到同一份资源---->我们之前讲的所有通信方式&#xff0c;本质都是优先解决一个问题&#xff1a;让不同的进程看到同一份资源。 让不同的进程看到了同一份资源&#xff0c;但是也带来了一些问题&a…

nacos安装手册

1. 单机模式 1.1 准备安装介质 nacos-server-2.1.1.tar.gz1.2 环境准备 1台服务器安装JDK 1.8 1.3 解压 tar-zxvf nacos-server-2.1.1.tar.gz1.4 启动 进入解压的nacos目录&#xff0c;进入bin目录&#xff0c;运行&#xff1a; ./startup.sh -m standalone1.5 验证 na…

Markdown:简洁高效的文本标记语言

引言 在当今信息爆炸的时代&#xff0c;我们需要一种简洁、高效的文本标记语言来排版和发布内容。Markdown应运而生&#xff0c;它是一种轻量级的文本标记语言&#xff0c;以其简单易学、易读易写的特点&#xff0c;成为了广大写作者的首选工具。本文将介绍Markdown的语法优缺…