# 融合 通过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 ```