HTML宝典(第 1 版)
4.5.6 图形组合
阅读(

HTML基础

HTML元素

表单及应用

Canvas绘图基础

基本用法

使用路径

绘制文本

处理图像和视频

装饰图形

裁剪区域

阴影

渐变和图案

颜色及透明度

线条的样式

图形组合

在canvas中绘制复杂图形时,经常会出现图形交叉的情况,canvas把图形交叉的情况称作组合。

通过上下文对象的globalCompositeOperation属性来设置图形的组合方式,该属性的取值及其含义见表 4‑5。其中,source指新绘制的图形,而destination指原有的图形,默认值是source-over。

表 4‑5 globalCompositeOperation属性取值及含义
操作 含义
source-atop (S atop D) 在两个图像都是非透明的地方,显示源图像。在目标图像是非透明但源图像是透明的地方,显示目标图像。其他地方透明显示。
source-in (S in D) 在源图像和目标图像均透明的地方,显示源图像。其他地方透明显示。
source-out (S out D) 在源图像非透明且目标图像为透明的地方,显示源图像。其他地方透明显示。
source-over (S over D, default) 在源图像为非透明的地方,显示源图像。其他地方显示目标图像。
destination-atop (S atop D) 在源图像和目标图像均为非透明的地方,显示目标图像。在源图像非透明且目标图像为透明的地方,显示源图像。其他地方透明显示。
destination-in (S in D) 在源图像和目标图像均为非透明的地方,显示目标图像。其他地方透明显示。
destination -out (S out D) 在目标图像为非透明且源图像为透明的地方,显示目标图像。其他地方透明显示。
destination -over (S over D) 在目标图像为非透明的地方,显示目标图像。其他地方显示目标图像。
lighter (S plus D) 显示源图像和目标图像之和。
xor (S xor D) 源图像和目标图像取异或操作。
copy (D is ignored) 显示源图像,不显示目标图像。

下图展示了globalCompositeOperation属性在不同取值下,源图形与目标图形的效果。其中,红色的圆代表源图形(S),蓝色的矩形代表目标图形(D)。

图形组合效果
图4-29 图形组合效果

上图是在Google Chrome浏览器41.0.2272.118版本中的效果。然而,对组合操作的处理还非常棘手,因为五大主流浏览器,如Chrome, Firefox, Safari, Opera, 和IE9,对组合的处理不尽相同。如果你想使用图形组合,你应该了解每个浏览器当前的支持情况。

由于globalCompositeOperation属性是全局的,在使用时应该注意保存和恢复状态。

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

如果本教程对您帮助很大,请随意打赏。您的支持,将鼓励我写出更好的教程!

← 键盘方向键翻页 →
返回顶部 手机访问 关注微信 返回底部

扫码访问歪脖网

随时随地,想看就看

关注歪脖网微信

分享 web 知识、交流 web 经验