canvas合成和裁剪
canvas合成和裁剪
属性
globalCompositeOperation=type 设置覆盖类型
source-over 源覆盖在目标上
source-in 源覆盖在目标上的公共部分(只取源图形的部分)
source-out 源覆盖在目标上以外的部分
source-atop 源覆盖在目标上的公共部分与目标的交集
destination-over 目标覆盖在源上
destination-in
destination-out
destination-atop
lighter 目标和源公共部分颜色值相加,结果是颜色更亮
copy 只显示源
xor 去除源和目标的公共部分
multiply 目标和源公共部分颜色值相乘,结果是颜色更暗
screen 比lighter的效果更light
overlay multiply和screen的混合作用
darken 保留目标和源像素最暗的部分
lighten 保留目标和源像素最亮的部分
color-dodge
color-burn
hard-light
soft-light
difference
exclusion
hue
saturation
color
luminosity ctx.clip(); 裁剪一块儿区域
合成使用示例
ctx.fillStyle='blue';
ctx.fillRect(150,150,200,200) // 源图形
ctx.globalCompositeOperation="source-over";
ctx.fillStyle='orange';
ctx.fillRect(100,100,200,200); // 目标图形
裁剪使用示例

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d'); ctx.beginPath();
ctx.arc(200, 200, 60, 0, Math.PI * 2, true);
ctx.stroke();
ctx.clip(); ctx.fillStyle="green";
ctx.fillRect(150,150,50,50);
canvas合成和裁剪的更多相关文章
- H5项目开发分享——用Canvas合成文字
以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ...
- <canvas合成海报>所遇问题及解决方案总结
最近做了一个用canvas合成海报图片的移动端项目,由于一点canvas基础都没有,所以去网上搜了一位前辈的demo,但是开发过程中遇到了很多问题,现将所遇问题及解决方法总结如下: 1.移动端canv ...
- 通过canvas合成图片
通过canvas合成图片 效果图 页面布局部分 两个图片以及一个canvas画布 <img src="https://qnlite.gtimg.com/qqnewslite/20190 ...
- html5 canvas 笔记五(合成与裁剪)
组合 Compositing globalCompositeOperation syntax: globalCompositeOperation = type 注意:下面所有例子中,蓝色方块是先绘制的 ...
- HTML5 canvas 合成属性
合成属性 globalAlpha 设置或返回绘图的当前 alpha 或透明值 globalCompositeOperation ...
- 使用canvas进行图片裁剪简单功能
1.html部分 使用一个input[type="file"]进行图片上传: canvas进行图片的裁剪展示 <div> <input type="fi ...
- 离线合成联想到的--canvas合成水印
前段时间做了功能模块:用户设置自定义勋章: 实现方式:前端把用户设置的昵称传到后台,后台根据不同用户等级,使用离线合成技术合成不同的勋章返回到前端: 方案算是实现了,但是有点坑就是,后台的离线合成没有 ...
- [JavaScript] canvas 合成图片和文字
Canvas Canvas 是 HTML5 新增的组件,就像一个画板,用 js 这杆笔,在上面乱涂乱画 创建一个 canvas <canvas id="stockGraph" ...
- 动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)
在前端开发并打算推广一个APP的时候,推广页是免不了的,而推广页的展示方式一般是给人家一个二维码,让别人自己去安装APP,这样前段任务也达到了,这次写这篇文章的原因主要还是总结一下,其中有很多不完善的 ...
随机推荐
- Java IO流-字节流
2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- 雷林鹏分享:Ruby CGI 编程
Ruby CGI 编程 Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但 Ruby 在WEB应用及WEB工具中的开发是最常见的. 使用Ruby您不仅可以编写自己的SMTP服务器,FT ...
- Credentials(Rails5.2新) 很基础的知识点,具体还要实操。
Credentials(Rails5.2新) 增加config/credentials.yml.enc 憎加config/master.key 移除了5.1使用的config/secrets.yml, ...
- Luogu P4062 [CTSC2018]混合果汁 (主席树)
二分$d$, 转为判断判断是否能取到$Lj$升, 再可持久化一下就好了 #include <iostream> #include <algorithm> #include &l ...
- opencv错误(Unhandled expection at at 0x0007EEE...)
错误截图如下: 情况1:加载人脸检测分类器的时候出错,不能写相对路径一定要写绝对路径 例如:cascade.load("D:\\recognise-your-own-face2\\recog ...
- UVA-11280 Flying to Fredericton (dijkstra)
题目大意:一张有向图,n个节点,m条边,有边权.求从起点到终点在最多经过s个中间节点(不包括始末点)时的最小权和. 题目分析:因为起点和终点是固定的,只需一次dijkstra打出表dis[u][k], ...
- 浅谈jsonp
要谈jsonp,首先要弄明白jsonp是什么,它是用来干嘛的.jsonp其实就是我们常用的script标签,用来解决跨域的,只不过这个标签是动态创建的,为啥要动态创建涅. 举个小栗子: 假如我们远程文 ...
- access_token和微信服务地址的获取
access_token的获取: //获取微信服务器地址:
- HDU 1241 Oil Deposits bfs 难度:0
http://acm.hdu.edu.cn/showproblem.php?pid=1241 对每个还未访问的点bfs,到达的点都标为一块,最后统计有多少块即可 #include <cstdio ...
- java之正则表达式的使用1
正则表达式: 主要作用: a.匹配 b.切割 c.替换 d.获取 1.反斜杠和转义字符 废话不多说,直接上demo public static void main(String[] args) { / ...