JS学习- Canvas - 遮盖组合
Compositing 组合
globalCompositeOperation这个属性设定了在画新图形时采用的遮盖策略,其值是一个标识12种遮盖方式的字符串。

| 值 | 描述 | 图示 |
|---|---|---|
| source-over | 默认设置,并在现有画布上下文之上绘制新图形。 | ![]() |
| source-in | 新图形只在新图形和目标画布重叠的地方绘制。其他的都是透明的。 | ![]() |
| source-out | 在不与现有画布内容重叠的地方绘制新图形。 | ![]() |
| source-atop | 新图形只在与现有画布内容重叠的地方绘制 | ![]() |
| destination-over | 在现有的画布内容后面绘制新的图形。 | ![]() |
| destination-in | 现有的画布内容保持在新图形和现有画布内容重叠的位置。其他的都是透明的。 | ![]() |
| destination-out | 现有内容保持在新图形不重叠的地方。 | ![]() |
| destination-atop | 现有的画布只保留与新图形重叠的部分,新的图形是在画布内容后面绘制的。 | ![]() |
| lighter | 两个重叠图形的颜色是通过颜色值相加来确定的。 | ![]() |
| copy | 只显示新图形。 | ![]() |
| xor | 图像中,那些重叠和正常绘制之外的其他地方是透明的。 | ![]() |
| multiply | 将顶层像素与底层相应像素相乘,结果是一幅更黑暗的图片。 | ![]() |
| screen | 像素被倒转,相乘,再倒转,结果是一幅更明亮的图片。 | ![]() |
| overlay | multiply和screen的结合,原本暗的地方更暗,原本亮的地方更亮。 | ![]() |
| darken | 保留两个图层中最暗的像素。 | ![]() |
| lighten | 保留两个图层中最亮的像素。 | ![]() |
| color-dodge | 将底层除以顶层的反置。 | ![]() |
| color-burn | 将反置的底层除以顶层,然后将结果反过来。 | ![]() |
| hard-light | 屏幕相乘(A combination of multiply and screen)类似于叠加,但上下图层互换了。 | ![]() |
| soft-light | 用顶层减去底层或者相反来得到一个正值 | ![]() |
| difference | 一个柔和版本的强光(hard-light)。纯黑或纯白不会导致纯黑或纯白。 | ![]() |
| exclusion | 和difference相似,但对比度较低。 | ![]() |
| hue | 保留了底层的亮度(luma)和色度(chroma),同时采用了顶层的色调(hue)。 | ![]() |
| saturation | 保留底层的亮度(luma)和色调(hue),同时采用顶层的色度(chroma)。 | ![]() |
| color | 保留了底层的亮度(luma),同时采用了顶层的色调(hue)和色度(chroma)。 | ![]() |
| luminosity | 保持底层的色调(hue)和色度(chroma),同时采用顶层的亮度(luma)。 | ![]() |
clip
clip(): 将当前正在构建的路径转换为当前的裁剪路径。
ctx.clip([path[,fillRule]]);
fillRule:['nonzero'|'evenodd']
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// Create clipping region
ctx.arc(100, 100, 75, 0, Math.PI*2, false);
ctx.clip();
//只有在裁切路径里面的矩形才会绘制出来。
ctx.fillRect(0, 0, 100,100);
JS学习- Canvas - 遮盖组合的更多相关文章
- Three.js 学习笔记(1)--坐标体系和旋转
前言 JavaScript 3D library The aim of the project is to create an easy to use, lightweight, 3D library ...
- 【Knockout.js 学习体验之旅】(2)花式捆绑
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 我的three.js学习记录(三)
此次的亮点不是three.js的3d部分,而是通过调用摄像头然后通过摄像头的图像变化进行简单的判断后进行一些操作.上篇中我通过简单的示例分析来学习three.js,这次是通过上一篇的一些代码来与摄像头 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- captcha.js一个生成验证码的插件,使用js和canvas生成
一.captcha`captcha.js`是一个生成验证码的插件,使用js和canvas生成的,确保后端服务被暴力攻击,简单判断人机以及系统的安全性,体积小,功能多,支持配置. 验证码插件内容,包含1 ...
- WebGL three.js学习笔记 创建three.js代码的基本框架
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
- 【温故知新】——BABYLON.js学习之路·前辈经验(二)
前言:在上一篇随笔BABYLON.js学习之路·前辈经验(一)中回顾了组内同事们长时间在Babylon开发实践中的总结出的学习之路和经验,这一篇主要对开发中常见的一些功能点做一个梳理,这里只作为温故知 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- Node.js学习笔记(1):Node.js快速开始
Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...
- WebGL three.js学习笔记 加载外部模型以及Tween.js动画
WebGL three.js学习笔记 加载外部模型以及Tween.js动画 本文的程序实现了加载外部stl格式的模型,以及学习了如何把加载的模型变为一个粒子系统,并使用Tween.js对该粒子系统进行 ...
随机推荐
- 浅谈zookeeper
zookeeper用来解决高可用问题,具有高可用,高性能,具有严格的顺序(只要是分布式系统就会是一个严格的顺序)访问控制能力的分布式协调服务,做分布式协调的作用,可以做服务的同步,维护配置文件和命名服 ...
- Wordpress主题twentytwelve修改首页文章摘要
方法:网站后台->外观->编辑->找到content.php文件 路径:wp-content/themes/twentytwelve/ 找到这一句: <?php if ( is ...
- GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused
问题记录:VM-Ubuntu20.04刚开始时使用NAT模式连接,后来改成桥接模式,改完之后原来使用docker启动的gitlab服务无法克隆,一直提示:fatal...没有远程库什么的,没解决后来删 ...
- mysql正则替换 正宗!
先看个官方例子 mysql> SELECT REGEXP_REPLACE('a b c', 'b', 'X'); +-----------------------------------+ | ...
- 负载均衡集群ipvsadm常见参数以及基本用法
---- 固定调度 rr:论调 wrr:加权论调 weight,加权 sh:source hash ,源地址hash 动态调度lc:最少链接 active*256+inactivewlc:加权最少链接 ...
- ChatGPT检测器开发者在知乎的文章,记录一下
我们开发了第一款中英双语ChatGPT检测器,还有... - 蝈蝈的文章 - 知乎 https://zhuanlan.zhihu.com/p/598395917
- 解决Fiddler设置的代理总是被自动关闭,The system proxy was changed
火绒剑过滤路径ProxyOverride 停用服务SangforSP https://www.cnblogs.com/jspider/p/15896503.html
- 环保行业ERP主要的几大治理区域?
环保行业是指在国民经济结构中,以防治环境污染.改善生态环境.保护自然资源为目的而进行的技术产品开发.商业流通.资源利用.信息服务.工程承包等活动的总称. 哲讯环保ERP行业产业链的上游主要是钢铁.有色 ...
- 谷歌是如何改进 GKE、Cloud Run 的 gVisor 文件系统性能的?
灵活的应用程序架构.CI/CD 管道和容器工作负载通常运行不受信任的代码,因此应该与敏感的基础设施隔离.一种常见的解决方案是部署纵深防御产品(如使用gVisor的GKE Sandbox)以通过额外的保 ...
- ubuntu22.04安装 kubernetes(docker)
初始化检查 操作系统:ubuntu22.04 LTS docker:20.10.18 kubelet: v1.23.6 kubeadm:v1.23.6 kubectl: v1.23.6 1.校准时间: ...

























