# 融合

通过canvas的属性globalCompositeOperation,设置多个图形之间的绘制方式

源图像 = 您打算放置到画布上的绘图。

目标图像 = 您已经放置在画布上的绘图

#### 方式1 source-over

默认。在目标图像上显示源图像。

![融合1](./img/source-over.png) 

```
painter.composite = SCompositeType.SourceOver
```

#### 方式2 source-atop

在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。

![融合2](./img/source-atop.png)

```
painter.composite = SCompositeType.SourceAtop
```


#### 方式3 source-in

在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。

![融合3](./img/source-in.png)

```
painter.composite = SCompositeType.SourceIn
```


#### 方式4 source-out

在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。

![融合4](./img/source-out.png)

```
painter.composite = SCompositeType.SourceOut
```


#### 方式5 destination-over

在源图像上方显示目标图像。

![融合5](./img/destination-over.png)

```
painter.composite = SCompositeType.DestinationOver
```


#### 方式6 destination-atop

在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。

![融合6](./img/destination-atop.png)

```
painter.composite = SCompositeType.DestinationAtop
```


#### 方式7 destination-in

在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。

![融合7](./img/destination-in.png)

```
painter.composite = SCompositeType.DestinationIn
```


#### 方式8 destination-out

在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。

![融合8](./img/destination-out.png)

```
painter.composite = SCompositeType.DestinationOut
```


#### 方式9 lighter

显示源图像 + 目标图像。

![融合9](./img/lighter.png)

```
painter.composite = SCompositeType.Lighter
```


#### 方式10 copy

显示源图像。忽略目标图像。

![融合10](./img/copy.png)

```
painter.composite = SCompositeType.Copy
```


#### 方式11 xor

使用异或操作对源图像与目标图像进行组合。

![融合11](./img/xor.png)

```
painter.composite = SCompositeType.Xor
```