html5 canvas 笔记五(合成与裁剪)

组合 Compositing

globalCompositeOperation

syntax:

 
globalCompositeOperation = type
 

注意:下面所有例子中,蓝色方块是先绘制的,即“已有的 canvas 内容”,红色圆形是后面绘制,即“新图形”。

source-over  这是默认设置,新图形会覆盖在原有内容之上。

Image:Canvas_composite_srcovr.png

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

Image:Canvas_composite_destovr.png

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

Image:Canvas_composite_srcin.png

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

Image:Canvas_composite_destin.png

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

Image:Canvas_composite_srcout.png

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

Image:Canvas_composite_destout.png

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

Image:Canvas_composite_srcatop.png

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

Image:Canvas_composite_destatop.png

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

Image:Canvas_composite_lighten.png

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

Image:Canvas_composite_darken.png

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

Image:Canvas_composite_xor.png

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

Image:Canvas_composite_copy.png

裁切路径 Clipping paths

裁切路径和普通的 canvas 图形差不多,不同的是它的作用是遮罩,用来隐藏没有遮罩的部分。

syntax

 
clip()
 

实例:

 1 function draw() {
 2   var ctx = document.getElementById('canvas').getContext('2d');
 3   ctx.fillRect(0,0,150,150);
 4   ctx.translate(75,75);
 5 
 6   // Create a circular clipping path
 7   ctx.beginPath();
 8   ctx.arc(0,0,60,0,Math.PI*2,true);
 9   ctx.clip();
10 
11   // draw background
12   var lingrad = ctx.createLinearGradient(0,-75,0,75);
13   lingrad.addColorStop(0, '#232256');
14   lingrad.addColorStop(1, '#143778');
15   
16   ctx.fillStyle = lingrad;
17   ctx.fillRect(-75,-75,150,150);
18 
19   // draw stars
20   for (var j=1;j<50;j++){
21     ctx.save();
22     ctx.fillStyle = '#fff';
23     ctx.translate(75-Math.floor(Math.random()*150),
24                   75-Math.floor(Math.random()*150));
25     drawStar(ctx,Math.floor(Math.random()*4)+2);
26     ctx.restore();
27   }
28   
29 }
30 function drawStar(ctx,r){
31   ctx.save();
32   ctx.beginPath()
33   ctx.moveTo(r,0);
34   for (var i=0;i<9;i++){
35     ctx.rotate(Math.PI/5);
36     if(i%2 == 0) {
37       ctx.lineTo((r/0.525731)*0.200811,0);
38     } else {
39       ctx.lineTo(r,0);
40     }
41   }
42   ctx.closePath();
43   ctx.fill();
44   ctx.restore();
45 }

 

转载于:https://www.cnblogs.com/hzj680539/p/5068487.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个能够编写、运行SQL查询并可视化结果的Web应用:SqlPad

SqlPad 是一个能够用于编写、运行SQL查询并可视化结果的Web应用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前仅适合单个团队在内网中使用&#xff0c;它直接通过网络连接到数据库服务器&#xff0c;任何人可以在上面执行任意 SQL 语句。安装首先安装 Node.js.安装好No…

加拿大计算机语言学,加拿大语言学专业排名

语言学专业简言之就是学习语言&#xff0c;包括语言的结构、形成、历史、以及人们如何使用语言等等。下面出国留学网小编和大家聊一聊2018加拿大大学语言学专业排名&#xff0c;希望对同学们有所帮助&#xff0c;欢迎阅读。1麦吉尔大学 McGill University麦吉尔大学是全球大学校…

UIView之常用方法

UIView之常用方法 将一个视图添加为子视图&#xff0c;并使之在最上面显示 -(void)addSubView:(UIView *)view;将指定子视图移动到顶部 -(void)bringSubViewToFront:(UIView *)view;将指定之视图放到最下面 -(void)sendSubViewToBack:(UIView *)view;将指定视图添加到subviews数…

Web前端开发框架对比

近几年随着 jQuery、Ext 以及 CSS3 的发展&#xff0c;以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野&#xff0c;可谓应接不暇。不论是桌面浏览器端还是移动端都涌现出很多优秀的框架&#xff0c;极大丰富了开发素材&#xff0c;也方便了大家的开发。这些框架各有特…

html5 筛子,html5摇骰子游戏

骰子游戏body#can;can;ctx;[];;;]]];window.οnlοad function(){can);ctx);ctx.clearRect(0,0,can.width,can.height);for(var i0;ictx.fillStyle orange;ctx.fillRect(diceCoordinates[i][0],diceCoordinates[i][1],40,40);draw(diceCoordinates[i],i,pointCoordinates[i]);…

关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]

崩溃原因 crash&#xff1a;Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-&#xff08; *** Terminating app due to uncaught exception NSInternalInconsiste…

linq.js的用法

linq.js 详细介绍linq.js 是一个 JavaScript 实现的 LINQ。主要特性&#xff1a;实现所有 .NET 4.0 的方法complete lazy evaluationfull IntelliSense support for VisualStudiotwo versions - linq.js and jquery.linq.js (jQuery plugin)support Windows Script Hostbinding…

标准MD5加密算法

标准MD5加密算法: public class Md5 {public static String getMd5(String s) {char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,a, b, c, d, e, f };try {byte[] strTemp s.getBytes();MessageDigest mdTemp MessageDigest.getInstance("md5");mdTemp.update(s…

程序员大牛们的经典语录

1、很多问题不见得会出在你身上&#xff0c;但你亦需要想法解决问题&#xff0c;否则就会变成你的问题&#xff1b;2、懂得但策略的说不&#xff08;不会这个准备累死吧&#xff0c;程序员&#xff09;&#xff1b;3、我考进事业单位&#xff0c;呵呵&#xff0c;没有传说中的那…

linux下创建的符号链接的权限

今天为shell脚本创建符号链接的时候突然发现的, 创建的符号链接文件的默认权限是 777, 而想要这个脚本可执行, 必须为真正的文件加上 x 权限才可以. 转载于:https://www.cnblogs.com/vanwoos/p/5075656.html

计算机osta试题,OSTA试题库.doc

OSTA试题库章节单选多选填空判断小计计算机基础知识64152020119Windows操作系统4810101583计算机网络应用4810151184Word文档处理51172120109Excel电子表格处理4515152095PowerPoint演示文稿制作5215112098多媒体技术4512102087合计35394102126675计算机基础知识(64152020120)一…

SQLSERVER得到数据库中所有表字段及字段中文描述

如何得到数据库中所有表字段及字段中文描述以下资料,通过csdn的一位师兄从SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…

SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示...

SQL Server 2008 R2——使用数字辅助表&#xff08;master..spt_values&#xff09;实现用计数字段对记录进行重复显示 原文:SQL Server 2008 R2——使用数字辅助表&#xff08;master..spt_values&#xff09;实现用计数字段对记录进行重复显示版权声明 版权声明&#xff1a;原…

编程界十大顶级IDE

IDE是集成开发环境&#xff08;Integrated Development Environment&#xff09;缩写。IDE是一种个编程软件&#xff0c;是集成了程序员语言开发中会需要的一些基本工具、基本环境和其他辅助功能的应用软件。IDE一般包含三个主要组件&#xff1a;源代码编辑器&#xff08;Edito…

就业局培训计算机心得,人社局计算机培训心得体会.doc

人社局计算机培训心得体会人社局计算机培训心得体会篇一&#xff1a;计算机培训心得体会 计算机培训心得体会: 2017年暑假&#xff0c;我参加了骨干教师计算机培训。通过5天培训老师认真的讲解、不厌其烦的答疑&#xff0c;同班学习的各校同行们激情四射的讨论交流&#xff0c;…

有点成熟的短句,最新个性签名

01、从前的人&#xff0c;多认真。02、我不希望你死于一事无成。03、放弃自我&#xff0c;而后成就自我。04、漫漫人生路&#xff0c;我们且行且珍惜&#xff01;05、你我只是初见&#xff0c;我便爱上了你。06、放弃了所有&#xff0c;却等不来你说的承诺。07、不问风&#xf…

iscroll 4.0 滚动(水平和垂直)

1、概述 iscroll 专注于页面滚动js。Iscroll滚动做的挺好,特别是针对手机网页&#xff08;android、iphone&#xff09;正好弥补手动滑屏的遗缺&#xff0c;而今研究一番&#xff0c;把代码贴出来&#xff0c;供大家参考。 2、iscroll使用说明 初始化iScroll wrapperhour//标识…

布法罗博士计算机专业回国人员,四名UW学生参加爱达荷州国家实验室的实习计划...

中游石油和天然气运营正日益面临代价高昂&#xff0c;受到严格审查的事件&#xff0c;这些事件源于老化(泄漏和爆炸)&#xff0c;自然事件(洪水&#xff0c;地震活动和极端天气)以及网络入侵和攻击。解决这些问题的一种方法涉及使用集成的智能监控系统或安全嵌入式智能(SEI)。怀…

学会拐弯,才是人生大智慧(深度好文)

人生天地间&#xff0c;路路九曲弯&#xff0c;从来没有笔直的。水能直至大海&#xff0c;就是因为它巧妙地避开所有障碍&#xff0c;不断拐弯前行。许多聪明人没能走上成功之路&#xff0c;不少是因为撞了南墙不回头。人生路上难免会遇到困难&#xff0c;拐个弯&#xff0c;绕…

excel列显示形式互换(字母与数字)

以office2007为例&#xff1a; excel选项》公式》使用公式下的R1C1引用样式 打上钩显示形式为数字&#xff0c;不打钩显示形式为字母 转载于:https://www.cnblogs.com/lianrenjujishou/p/5079776.html