手机游戏开发学习笔记

图形学,cocos2d-x,unity,unreal.....

Html5 Canvas初探学习笔记(7) -合成

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

本篇介绍另外两个绘制的状态值,分别是全局阿尔法值和合成操作,首先来看全局阿拉法值

全局阿拉法值很简单,就是我们的argb值里面的“a”值,不同的是全局阿拉法值必须在0.0(全透明)到1.0(全部透明)之间,对应之前提到的“a”值的0255,默认值是1.0

如下的代码将实现下面的效果:

context.fillStyle = "red";

context.save();

context.globalAlpha = 0.5;

context.fillRect(50,50,100,100);

context.restore();

context.fillRect(200,50,100,100);


这个例子介绍全局阿拉法值的使用,同时说明了他是一个绘制状态值,也可以使用saverestore,由于调用save时保留了fillStylered值,所以画出的是半透的红色正方形和不透的红色正方形。

合成操作也是一个状态值globalCompositeOperation,定义他的不同值,将完成一些操作,主要是源图形(定义globalCompositeOperation之前的绘制上下文)和目标图形(定义globalCompositeOperation之后的绘制上下文)

首先来看这段代码,将会实现下面的效果

context.fillStyle = "red";

context.globalCompositeOperation = "source-over";

context.fillRect(50,50,100,100);

context.fillStyle = "blue";

context.fillRect(100,100,100,100);


这是globalCompositeOperation的默认值,也就是说没有这句话效果是一样的,就是后画的部分将覆盖到之前画的上面

以下介绍globalCompositeOperation的值对应的效果:

"destination-over"


"source-out"


"destination-atop"


"lighter"


"copy"


"xor"


有些值目前chrome浏览器还不支持,需要等规范来规定

如有错误,希望大家多多指正

下一篇继续研究绘制的高级功能



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bill_man/article/details/7404848
个人分类: html5
所属专栏: html5 canvas入门
想对作者说点什么? 我来说一句

canvas在线画板制作

2017年01月09日 3.6MB 下载

没有更多推荐了,返回首页

不良信息举报

Html5 Canvas初探学习笔记(7) -合成

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭