我们总是将一个图形画在另一个之上,大多数情况下,这样是不够的。比如说,它这样受制于图形的绘制顺序。不过,我们可以利用 globalCompositeOperation
属性来改变这些做法。
globalCompositeOperation = type
我们不仅可以在已有图形后面再画新图形,还可以用来遮盖,清除(比 clearRect
方法强劲得多)某些区域。
type
是下面 12 种字符串值之一:
注意:下面所有例子中,蓝色方块是先绘制的,即“已有的 canvas 内容”,红色圆形是后面绘制,即“新图形”。
source-over (default)
这是默认设置,新图形会覆盖在原有内容之上。
|

|
destination-over
会在原有内容之下绘制新图形。
|

|
source-in
新图形会仅仅出现与原有内容重叠的部分。其它区域都变成透明的。
|

|
destination-in
原有内容中与新图形重叠的部分会被保留,其它区域都变成透明的。
|

|
source-out
结果是只有新图形中与原有内容不重叠的部分会被绘制出来。
|

|
destination-out
原有内容中与新图形不重叠的部分会被保留。
|

|
source-atop
新图形中与原有内容重叠的部分会被绘制,并覆盖于原有内容之上。
|

|
destination-atop
原有内容中与新内容重叠的部分会被保留,并会在原有内容之下绘制新图形
|

|
lighter
两图形中重叠部分作加色处理。
|

|
darker
两图形中重叠的部分作减色处理。
|

|
xor
重叠的部分会变成透明。
|

|
copy
只有新图形会被保留,其它都被清除掉。
|

|
分享到:
相关推荐
在HTML5的canvas元素中,`globalAlpha`属性用于设置绘制的所有图形的全局透明度。它的值范围是从0到1,其中0表示完全透明,1表示完全不透明。例如,在`12.globalAlpha.html`文件中,我们可以看到如何设置`global...
HTML5 Canvas是一个基于矢量图形的元素,通过JavaScript来控制其绘图行为。它提供了丰富的API,可以用于绘制线条、形状、图像、文本,甚至进行复杂的动画效果。Canvas的核心在于它的绘图方法,如`fillRect()`(填充...
HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas...
html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的...
### 使用 HTML5 canvas 进行 Web 绘图 #### 知识点概览 - **HTML5 Canvas 的引入背景及意义** - **Canvas 元素的基本概念与应用场景** - **Canvas 的基本绘图 API** - **JavaScript 与 Canvas 的交互** - **性能...
《HTML 5 Canvas基础教程》从HTML5和JavaScript(以及jQuery)的基础知识讲起,全面介绍了HTML5Canvas的各种特性,包括渲染上下文、坐标系统、绘制图形、保存和恢复画布状态,以及变形、合成、处理图像和视频等,让...
HTML5的Canvas元素为网页带来了强大的图形绘制能力,而Literally Canvas则是一个优秀的基于Canvas的开源画图插件,它提供了一套完整的画图工具,使得用户可以在网页上进行自由的绘图操作。在本文中,我们将深入探讨...
4. **性能优化**:由于Canvas绘图是实时的,可能需要考虑性能问题。避免不必要的重绘,利用`clearRect`清除指定区域,或者使用`getImageData`和`putImageData`进行局部更新,都是常见的优化手段。 5. **动画帧率...
2. **Canvas绘图API**: - `fillRect(x, y, width, height)`:绘制填充的矩形。 - `strokeRect(x, y, width, height)`:仅绘制矩形边框。 - `beginPath()`、`moveTo(x, y)`、`lineTo(x, y)`、`closePath()`、`...
这个压缩包“HTML5_canvas_Web.rar”显然包含了关于如何利用HTML5的canvas元素进行Web绘图的资源,其中的核心文件是“使用 HTML5 canvas 进行 Web 绘图.mht”。 Canvas API 提供了一系列的JavaScript方法,使得开发...
HTML5 Canvas 是一个强大的网页图形绘制工具,允许开发者在网页上动态绘制图像,而无需依赖任何插件。在这个场景中,我们关注的是如何利用Canvas来播放视频。这涉及到HTML5的Media API和Canvas API的结合使用,使得...
HTML5 CANVAS 绘图 JS 只需要简单的一行代码即可渲染整个绘图版 主要用于实现手写签名
这个“HTML5 Canvas绘图示例.rar”压缩包包含了一个具体的应用实例,教你如何利用Canvas API来画直线、图形以及进行各种图形操作。 首先,Canvas API的核心是`<canvas>`元素,它提供了一个二维渲染上下文,通过...
HTML5 canvas 是一种在网页上绘制图形的API,它允许开发者通过JavaScript动态创建和修改二维图形,从而实现丰富的视觉效果。在这个"HTML5 canvas仿屏保动态管道"项目中,我们利用canvas元素来模仿经典的Windows屏保...
这个游戏不仅展示了HTML5 Canvas的技术潜力,也为学习者提供了一个很好的实践案例,通过研究源代码,可以深入了解Canvas的绘图和游戏开发原理。同时,这个小游戏也表明,HTML5 Canvas不仅可以用于复杂的可视化应用,...
HTML5Canvas的绘图就是默认anti-aliasing的。其实作为一般的开发者,可以不关心这个东西的存在,好像anti-aliasing是理应如此的。但是,如果我们的用户非要看到non-anti-aliasing的效果呢?这个类似有了酱油还要吃盐...
总的来说,“HTML5 canvas宇宙中星云动画背景特效”是一个综合运用了canvas绘图、动画、渐变、混合模式、粒子系统等技术的项目。通过这个特效,开发者可以学习到如何利用HTML5 canvas创建出引人入胜的视觉体验,同时...
HTML5的Canvas被纳入规范,因为它为浏览器端提供了二维绘图的能力,而且性能优秀,实现起来相对简单。 尽管HTML5 Canvas在执行性能上有着明显的优势,但它也存在一些限制。例如,Canvas上的图形是位图,不可缩放,...
Html5 Canvas画线有毛边是一个在Web前端开发中常见的问题,特别是在使用Canvas 2D渲染图形时。这个问题主要是由于Canvas中坐标点与像素点之间的对齐问题造成的。下面我们将详细探讨这个问题及解决方案。 **Canvas...