组合多个图形

在前面的实例中,我们看到使用Canvas API可以将一个图形重叠绘制在另一个图形上面,但图形中能够被看到的部分完全取决于以哪种方式进行组合,这时需要使用到Canvas API的图形组合技术。在HTML5中,只要用图形上下文对象的globalCompositeOperation属性就能自己决定图形的组合方式,使用方法如下。

context.globalCompositeOperation = type

type的值必须是下面几种字符串之一。

下面将以图形组合的方式,来说明type值的字符串表现形式。

在下面的图形中,黑色方块是先绘制的,即“已有的canvas内容”,灰色圆形是后面绘制的,即“新图形”。

 source-over
这是默认设置,表示新图形会覆盖在原有图形之上。效果如图17.23所示。
 destination-over
表示会在原有图形之下绘制新图形。效果如图17.24所示。
 source-in
新图形会仅仅出现与原有图形重叠的部分,其他区域都变成透明的。
 destination-in

原有图形中与新图形重叠的部分会被保留,其他区域都变成透明的。效果如图17.26所示。

 source-out

只有新图形中与原有内容不重叠的部分会被绘制出来。效果如图17.27所示。
 destination-out
原有图形中与新图形不重叠的部分会被保留。效果如图17.28所示。
 source-atop

只绘制新图形中与原有图形重叠的部分和未被重叠覆盖的原有图形,新图形的其他部分变成透明。
 destination-atop

只绘制原有图形中被新图形重叠覆盖的部分与新图形的其他部分,原有图形中的其他部分变成透明,不绘制新图形中与原有图形相重叠的部分。效果如图17.30所示。
 lighter
两图形中重叠部分作加色处理。
 darker
两图形中重叠的部分作减色处理。效果如图17.32所示。
 xor
重叠的部分会变成透明。效果如图17.33所示。
 copy
只有新图形会被保留,其他都被清除掉。
https://www.bilibili.com/video/BV1qL411u7eEhttps://www.bilibili.com/video/BV1qL411u7eE

前端基础_组合多个图形相关推荐

  1. 前端基础_认识前端.md

    前端学习 前端学习路线 学习网站 菜鸟驿站 慕课网 freeCOdeCamp w3school try8 在线编辑 codepen jsfiddle thecodeplayer 其他网站 cssfil ...

  2. 前端基础_像素的处理

    像素的处理 在HTML5中使用canvas API所能够做到的图像处理技术中,还有一个更让人惊讶的技术就是像素处理技术.使用canvas API能够获取图像中的每一个像素,然后得到该像素颜色的rgb值 ...

  3. 前端基础_配置IIS服务器

    配置IIS服务器 在应用程序完全离线之前,还需要正确地提供清单文件.清单文件必须有扩展名.manifest和正确的mime-type. 如果使用Apache这样的通用Web服务器,需要找到在AppSe ...

  4. gif透明背景动画_前端基础系列之bmp、jpg、png、gif、svg常用图片格式浅谈(二)...

    IT客栈 作者:大腰子 bmp.jpg.png.gif.svg常用图片格式 之前为大家介绍了几种WEB前端常用的图片格式,对比了它们的特点,参见<前端基础系列之bmp.jpg.png.gif.s ...

  5. boost log 能不能循环覆盖_前端基础进阶(十四):深入核心,详解事件循环机制...

    Event Loop JavaScript的学习零散而庞杂,很多时候我们学到了一些东西,但是却没办法感受到进步!甚至过了不久,就把学到的东西给忘了.为了解决自己的这个困扰,在学习的过程中,我一直在试图 ...

  6. python前端基础知识总结 及部分练习题

    python前端基础知识总结 知识总结 认识Python 发展历史 版本选择 python2.7是python2的最后一个版本,到2020年将不再维护 python3.6是python3最新的版本,是 ...

  7. 第二章网页前端基础与HTTP协议

    第二章 网页前端基础与HTTP协议 爬虫需要遵循网络传输协议才能与服务器进行通信,当与服务器建立通信后,爬虫才能获取网页内容,从而获取想要爬取的内容.获取到的网页内容通常为HTML(HyperText ...

  8. 计算机课件文字,计算机应用基础_文字处理wordppt课件.ppt

    <计算机应用基础_文字处理wordppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机应用基础_文字处理wordppt课件.ppt> ...

  9. 前端基础(HTML、CSS、JS)

    前端基础(HTML.CSS.JS) 1 HTML 1.1 文件标签 1.2 排版标签 1.3 字体标签 1.4 列表标记 1.4.1 有序列表 1.4.2 无序列表 1.5 图片标签 1.6 超链接标 ...

最新文章

  1. Mycat实现垂直拆分与水平拆分
  2. 2016年CCPC/ICPC比赛总结
  3. 超酷的Android 侧滑(双向滑动菜单)效果
  4. 进程与线程 thread (二)——线程概念
  5. php usort strc,php中usort自定义排序如何使用
  6. [原]逆向iOS SDK -- +[UIImage imageNamed:] 的实现
  7. 【机器视觉学习笔记】伽马变换(C++)
  8. 网站的服务器分哪几种,服务器有哪几种分类?_服务器可分为四种类型
  9. jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX? 在用React写组件的 - phpStudy...
  10. oracle的解析計劃,Oracle中获取执行计划的几种方法分析
  11. IDEA实用插件推荐
  12. python平均分及格率优秀率_跪求:请问怎样统计均分、优秀率、及格率、低分率的问题...
  13. 计算机的6种典型应用领域,人工智能已经广泛应用到许多领域,其典型的应用包括这些...
  14. 嵌入式Linux驱动学习【9】—— Nor Flash
  15. win10 注销 睡眠 休眠 cmd 命令
  16. *转载*耶鲁大学校长给计算机学生的建议
  17. BUUCTF RSA2
  18. 咏春拳谱之标指(套路详解)
  19. CPC广告业务架构总结
  20. mysql如何实现全外连接并去除重复列?

热门文章

  1. WR威廉指标-反映市场超买超卖现象(短期)
  2. pyqt创建窗口没有句柄_Python GUI之Tkinter窗口视窗教程集合
  3. python display方法_Python display.vvv方法代码示例
  4. js实现简易关注按钮点击事件
  5. css 边框环绕动态效果
  6. 【XJB造轮子】独立手写实现JS中数组的部分方法
  7. 【定时同步系列9】QPSK基带调制+Gardener定时误差检测+解调误码率曲线之MATLAB并行仿真姊妹篇二
  8. 蓝桥杯 海盗比酒量 C语言
  9. 论文阅读笔记--ExpandNet: High Dynamic Range Expansion from Low Dynamic Range Content
  10. JAVA之JDBC连接数据库