# 合成
在之前的例子里面,我们总是将一个图形画在另一个之上,对于其他更多的情况,仅仅这样是远远不够的。比如,对合成的图形来说,绘制顺序会有限制。不过,我们可以利用 globalCompositeOperation 属性来改变这种状况。
我们不仅可以在已有图形后面再画新图形,还可以用来遮盖指定区域,清除画布中的某些部分(清除区域不仅限于矩形,像clearRect()方法做的那样)以及更多其他操作。
ctx.globalCompositeOperation = type
- source-over 这是默认设置,并在现有画布上下文之上绘制新图形。
- source-in 新图形只在新图形和目标画布重叠的地方绘制。其他的都是透明的。
- source-out 在不与现有画布内容重叠的地方绘制新图形。
- source-atop 新图形只在与现有画布内容重叠的地方绘制。