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

一、简介

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

  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
    使用源图像的亮度,以及目标图像的色调和饱和度进行绘制。

三、简单体验一下

缓若江海凝清光

                                         

上一章:从零开始学习在VUE3中使用canvas(四):globalAlpha(全局透明度)-CSDN博客

下一章:从零开始学习在VUE3中使用canvas(六):lineCap(线条端点样式)-CSDN博客

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

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

相关文章

IPV6协议之DHCPV6

目录 背景: 一、DHCPV6概述 DHCPv6 Client: DHCPv6 Relay: DHCPv6 Server: 二、DHCPV6工作原理 DHCPV6无状态自动分配 三、DHCP基础配置 服务端 四、DHCPV6地址更新时间(DHCPV4租期) 五、DHCPV6…

idea 开发serlvet篮球秩序册管理系统idea开发mysql数据库web结构计算机java编程layUI框架开发

一、源码特点 idea开发 java servlet 篮球秩序册管理系统是一套完善的web设计系统mysql数据库 系统采用serlvetdaobean mvc 模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 servlet 篮…

☆【前后缀】【双指针】Leetcode 42. 接雨水

【前后缀】【双指针】Leetcode 42. 接雨水 解法1 前后缀分解解法2 双指针 ---------------🎈🎈42. 接雨水 题目链接🎈🎈------------------- 解法1 前后缀分解 维护一个前缀(左侧最高)后缀(右侧…

【Linux系统编程(进程编程)】进程的退出:父进程等待子进程的退出之僵尸进程与孤儿进程

文章目录 一、进程退出1.1、进程正常退出方式1.2、异常退出 二、父进程等待子进程退出(一)2.1、为什么要等待子进程退出2.2、(1)父进程等待子进程退出并收集子进程的退出状态如何等待wstatus空wstatus非空 2.3、(2&…

LeetCode---389周赛

题目列表 3083. 字符串及其反转中是否存在同一子字符串 3084. 统计以给定字符开头和结尾的子字符串总数 3085. 成为 K 特殊字符串需要删除的最少字符数 3086. 拾起 K 个 1 需要的最少行动次数 一、字符串及其反转中是否存在同一子字符串 直接暴力枚举即可,代码…

【PHP + 代码审计】数组函数

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

力扣面试150 x 的平方根 二分 换底法 牛顿迭代法 一题多解

Problem: 69. x 的平方根 思路 👨‍🏫 参考题解 💖 袖珍计算器算法 class Solution {public int mySqrt(int x){if (x 0)return 0; // Math.exp(3):e的三次方int ans (int) Math.exp(0.5 * Math.log(x));return (long) (an…

配置环境安装包遇到的问题

1. error: could not install packages due to an oserror: [errno 28] no space left on device 说是磁盘占用过多,查看磁盘占用情况。 df -h 果然占比100% 清理了众多缓存.cache都不行,而且其他利用率很低,可能是pip install的过程中使…

qt 实现 轮播图效果,且还有 手动 上一页和下一页 已解决

QT中有 轮播图的需求,按照正常html版本 。只需要配置数组就能搞定,但是c qt版本 应该用什么了。 第一想到的是采用定时器。 // 定时器初始化{m_pTime new QTimer(this);m_pTime->start(4 * 1000);//启动定时器并设置播放时间间隔m_pAutoFlag true;/…

【python】python turtle绘制坤坤打球

一、效果图: 二、准备工作 (1)、导入必要的模块: 代码首先导入了需要使用的模块:requests、lxml和csv。 import requests from lxml import etree import csv 如果出现模块报错 进入控制台输入:建议使用国内镜像源 p…

智慧公厕:跨界融合,打造智慧城市新名片

随着城市化进程的不断加快,公共厕所建设成为一个亟待解决的问题。传统的公厕存在着管理繁琐、卫生差、服务不到位等一系列问题,与城市发展的节奏不协调。为此,推进新型智慧公厕建设成为了一个重要的解决方案。智慧公厕的建设需要推进技术融合…

【论文精读】VIT:vision transformer论文

相关文章 【论文精读】Transformer:Attention Is All You Need 文章目录 相关文章一、文章概览(一)研究背景(二)核心思路(三)相关工作(三)文章结论 二、模型细节&#x…

【MySQL系列】优化数据库时区设置,确保数据一致性与准确性

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

图论基础|深度优先dfs、广度优先bfs

dfs 与 bfs 区别 提到深度优先搜索(dfs),就不得不说和广度优先搜索(bfs)有什么区别 先来了解dfs的过程,很多录友可能对dfs(深度优先搜索),bfs(广度优先搜索…

鸿蒙Harmony应用开发—ArkTS-@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二…

MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?

MySQL select count(*)、count(1)、count(列名) 的区别? 这里我们先给出正确结论: count(*),包含了所有的列,会计算所有的行数,在统计结果时候,不会忽略列值为空的情况。count(1),忽略所有的列…

AtCoder Beginner Contest 346

A. Adjacent Product(循环) 题意 给出 N N N个数字 A 1 , A 2 , … , A N A_1, A_2, \ldots, A_N A1​,A2​,…,AN​。定义 B i A i A i 1 ( 1 ≤ i ≤ N − 1 ) B_i A_i \times A_{i 1}(1 \le i \le N - 1) Bi​Ai​Ai1​(1≤i≤N−1)。 请你打印 B 1 , B 2 , … , B …

javase day09笔记

第九天课堂笔记 构造方法★★★★ 完成对属性赋值构造方法的名字必须与类名一致没有返回值类型public 类名(【参数】){ }构造方法在创建对象时同步执行没写无参构造,系统默认提供写了构造方法,系统不再提供构造方法:重载 引用数…

牛客NC108 最大正方形【中等 动态规划 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/0058c4092cec44c2975e38223f10470e 思路 动态规划: 先初始化第一行和第一列。然后其他单元格依赖自己的上边,左边和左上角参考答案Java import java.util.*;public class Solution {/*** 代码中的类…

Naive UI:一个 Vue 3 组件库,比较完整,主题可调,使用 TypeScript,快有点意思。

在当今的前端开发领域,Vue 3已成为中后台应用的首选框架。为了满足开发者的需求,各种组件库如雨后春笋般涌现。其中,Naive UI以其独特的优势,成为了Vue 3开发者的得力助手。本文将深入探讨Naive UI的特性、优势以及如何使用它来提…