合成
最后更新于:2022-04-02 03:29:10
[TOC]
## 合成
```
globalCompositeOperation = type
```
一个十三种类型 [demo](https://www.runoob.com/w3cnote/html5-canvas-intro.html)
1. source-over 新图像覆盖原有图像
2. source-in 仅仅会出现新图像与原来图像重叠的部分,其他区域都变成透明的
3. source-out 仅仅显示新图像与老图像没有重叠的部分,其余部分全部透明
4. source-atop 新图像仅仅显示与老图像重叠区域
5. destination-over 新图像会在老图像的下面
6. destination-in 仅新老图像重叠部分的老图像被显示,其他区域全部透明
7. destination-out 注意显示的是老图像的部分区域
8. destination-atop 老图像仅仅仅仅显示重叠部分,新图像会显示在老图像的下面
9. lighter 新老图像都显示,但是重叠区域的颜色做加处理
10. darken 保留重叠部分最黑的像素
11. lighten 保证重叠部分最量的像素
12. xor 重叠部分会变成透明
13. copy 只有新图像会被保留,其余的全部被清除(边透明)
实例
```
function draw(){
var canvas = document.getElementById('tutorial1');
if (!canvas.getContext) return;
var ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, 200, 200);
ctx.globalCompositeOperation = "source-over"; //全局合成操作
ctx.fillStyle = "red";
ctx.fillRect(100, 100, 200, 200);
}
draw();
```
';