从零开始学习在VUE3中使用canvas(五):globalCompositeOperation(图形混合)

news2024/9/25 11:23:25

一、简介

通过设置混合模式来改变图像重叠区域的显示方式。

  const ctx = canvas.getContext("2d");
  ctx.globalCompositeOperation ="source-over";

二、属性介绍

  1. source-over
    这是默认的复合操作。将源图像绘制到目标图像上,保留目标图像的不透明部分。

  2. source-in
    只在目标图像与源图像重叠的地方绘制源图像,其他地方保持透明。

  3. source-out
    正文:只在源图像不与目标图像重叠的地方绘制源图像,重叠部分保持透明。

  4. source-atop
    将源图像绘制到目标图像上,但只保留源图像与目标图像重叠的部分,并且目标图像的不透明部分不会被覆盖。

  5. destination-over
    source-over相反,将目标图像绘制到源图像上,保留源图像的不透明部分。

  6. destination-in
    只在源图像与目标图像重叠的地方绘制目标图像,其他地方保持透明。

  7. destination-out
    只在目标图像不与源图像重叠的地方绘制目标图像,重叠部分保持透明。

  8. destination-atop
    将目标图像绘制到源图像上,但只保留目标图像与源图像重叠的部分,并且源图像的不透明部分不会被覆盖。

  9. lighter
    取源图像与目标图像中颜色值较大的部分进行绘制,效果是两者相加后变得更亮。

  10. copy
    只绘制源图像,忽略目标图像。

  11. xor
    对源图像与目标图像进行异或操作,相同颜色的部分变为透明,不同颜色的部分保持原样。

  12. multiply
    将源图像与目标图像的颜色值相乘,得到更暗的结果。

  13. screen
    将源图像与目标图像的反色相乘,再取反,得到更亮的结果。

  14. overlay
    根据源图像与目标图像的亮度,选择multiplyscreen效果进行绘制。

  15. darken
    取源图像与目标图像中颜色值较小的部分进行绘制,效果是变得更暗。

  16. lighten
    取源图像与目标图像中颜色值较大的部分进行绘制,效果是变得更亮。

  17. color-dodge
    正文:根据源图像与目标图像的颜色值进行色彩减淡效果,使目标图像的颜色变浅。

  18. color-burn
    根据源图像与目标图像的颜色值进行色彩加深效果,使目标图像的颜色变深。

  19. hard-light
    根据源图像的亮度,选择multiplyscreen效果对目标图像进行绘制。

  20. soft-light
    hard-light类似,但效果更为柔和。

  21. difference
    取源图像与目标图像的颜色值的差值进行绘制,产生类似负片的效果。

  22. exclusion
    difference类似,但效果更为柔和。

  23. hue
    使用源图像的色调和目标图像的饱和度和亮度进行绘制。

  24. saturation
    使用源图像的饱和度和目标图像的色调和亮度进行绘制。

  25. color
    使用源图像的色调和饱和度,以及目标图像的亮度进行绘制。

  26. luminosity
    使用源图像的亮度,以及目标图像的色调和饱和度进行绘制。

三、简单体验一下

缓若江海凝清光

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优化选址问题 | 模拟退火算法求解物流选址问题含Matlab源码

目录 问题代码问题 模拟退火算法(Simulated Annealing, SA)是一种概率性的全局优化算法,用于求解大规模组合优化问题。在物流选址问题中,模拟退火算法可以用来寻找成本最低、效率最高的仓库或配送中心位置。下面是一个简化的模拟退火算法求解物流选址问题的描述,并附带有…

Leetcode - 周赛389

目录 一,3083. 字符串及其反转中是否存在同一子字符串 二,3084. 统计以给定字符开头和结尾的子字符串总数 三,3085. 成为 K 特殊字符串需要删除的最少字符数 四,3086. 拾起 K 个 1 需要的最少行动次数 一,3083. 字符…

HTML5和CSS3笔记

一:网页结构(html): 1.1:页面结构: 1.2:标签类型: 1.2.1:块标签: 1.2.2:行内标签: 1.2.3:行内块标签: 1.2.4:块标签与行…

钡铼R40工业4G路由器保障智能物流仓储系统高效运行

随着物流行业的不断发展和智能化技术的广泛应用,智能物流仓储系统已成为提升物流效率、降低成本、提高服务质量的重要手段。在这样的背景下,钡铼R40工业4G路由器作为一种先进的网络通信设备,在智能物流仓储系统中扮演着关键的角色&#xff0c…

【小米汽车SU7实测】 小米汽车su7到底行不行?小米新能源轿车体验感怎么样?

小米汽车SU7是小米汽车的首款车型,定位“C级高性能生态科技轿车”,也是小米迈入新能源赛道的首次成果落地。 首先,让我们来谈谈它的性能。试驾过程中,小米SU7展现出了惊人的加速能力,0-100km/h加速仅需2.78秒&#xf…

【设计】 【数学】1622 奇妙序列

本文涉及知识点 设计 数学 LeetCode1622. 奇妙序列 请你实现三个 API append,addAll 和 multAll 来实现奇妙序列。 请实现 Fancy 类 : Fancy() 初始化一个空序列对象。 void append(val) 将整数 val 添加在序列末尾。 void addAll(inc) 将所有序列中的…

2024 年 5 个 Linux 开源数字化学习平台

与其他行业一样,教育界多年来一直在经历数字化转型的过程。随着数字化学习平台的建立,目前只要能上网,任何人都可以接受教育。 “e-learning”一词的意思是“数字化学习”,是当今最常用的词之一。 它指的是通常在互联网上进行的培…

[c++] c++ 中的一些关键字:explicit, delete, default, override, final, noexcept

1 explicit explicit 的意思是清楚的,明显的。一般用在类的构造函数中,防止隐式转换。 explicit specifier - cppreference.com 如下代码, (1) 类 A 的两个构造函数都没有使用 explicit 修饰,所以如下两行代码,隐式…

ubuntu 如何使用阿里云盘

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

网络学习:IPV6基础配置

目录 一、配置接口的全球单播地址 二、配置接口本地链路地址 三、配置接口任播地址 四、配置接口PMTU 配置静态PMTU: 配置动态PMTU: 五、接口配置IPV6地址示例: 一、配置接口的全球单播地址 全球单播地址类似于IPv4公网地址&#xff0…

postman下载汉化以及使用

【2023全网最牛教程】10分钟快速上手Postman(建议收藏)_macbook postman打开慢-CSDN博客 Postman 汉化教程(小白)配置的具体操作_postman怎么设置中文-CSDN博客 上面是两篇参考的博客 postman是一款支持http协议的接口调试与测试…

100道面试必会算法-10-K 个一组翻转链表

100道面试必会算法-10-K 个一组翻转链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点…

活动图高阶讲解-09

1 00:00:00,000 --> 00:00:04,000 上次的练习不知道大家做了没有 2 00:00:04,000 --> 00:00:07,000 没有做的话赶紧做 3 00:00:07,000 --> 00:00:09,000 把它发过来 4 00:00:09,000 --> 00:00:11,000 接下来,下一个 5 00:00:11,000 --> 00:00:16…

ARM实验 LED流水灯

.text .global _start _start: 使能GPIOE GPIOF的外设时钟 RCC_MP_AHB4ENSETR的第[4][5]设置为1即可使能GPIOE GPIOF时钟 LDR R0,0X50000A28 指定寄存器地址 LDR R1,[R0] 将寄存器原来的数值读取出来&#xff0c;保存到R1中 ORR R1,R1,#(0x3<<4) 将第4位设置为1 S…

开源项目ChatGPT-Next-Web的容器化部署(一)-- 优化Dockerfile

一、背景 最近比较火的无疑是chatgpt了&#xff0c;找到一款开源github项目&#xff0c;在其基础上修改&#xff0c;定制出适合于自身业务的系统。 它是nodejs后端项目&#xff0c;github地址是&#xff1a;https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web&#xff0c;依…

面试算法-87-分隔链表

题目 给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x …

(力扣)删除链表的倒数第N个节点 C++

1、题目描述 2、三种方法 &#xff08;1&#xff09;方法一&#xff1a;计算链表长度 创建一个虚拟节点来处理删除头节点的情况通过计算链表的长度确定要删除节点的位置。使用双指针中的一个指针&#xff0c;移动到要删除节点的前一个位置。将指针后面的节点跳过&#xff0c;…

深度学习 线性神经网络(线性回归 从零开始实现)

介绍&#xff1a; 在线性神经网络中&#xff0c;线性回归是一种常见的任务&#xff0c;用于预测一个连续的数值输出。其目标是根据输入特征来拟合一个线性函数&#xff0c;使得预测值与真实值之间的误差最小化。 线性回归的数学表达式为&#xff1a; y w1x1 w2x2 ... wnxn …

openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint

文章目录 openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint249.1 功能描述249.2 语法格式249.3 参数说明249.4 示例 openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint 249.1 功能描述 指明join的顺序&#xff0…

内存卡的照片怎么突然就找不到了,内存卡照片突然找不到如何恢复

最近,我遇到了一个令人困惑的问题,就是我的内存卡中的照片突然间找不到了。作为一个热爱摄影的人,我经常使用内存卡来存储我的珍贵照片。然而,最近我发现,无论我如何搜索和浏览,这些照片似乎就像消失了一样。内存卡照片突然找不到如何恢复?虽然挺沮丧的,但幸好遇上了以…