详细说明HTML5画布颜色和透明度的方法的细节

指定的颜色

黑色是画布渲染的默认颜色。如果要更改颜色,则必须在实际绘制之前指定颜色。

Javascript代码将内容复制到剪贴板。


ctx.strokestyle =颜色




指定绘图行的颜色:

Javascript代码将内容复制到剪贴板。


ctx.fillstyle =颜色




指定填充颜色:
看看实际例子:

Javascript

Javascript代码将内容复制到剪贴板。


指针函数(){
拉();
};
函数绘图(){
VaR的画布document.getelementbyid('c1);
如果(帆布| |!!帆布。getContext){ return false;}
VaR CTX = canvas.getcontext(二维的);
Ctx.beginPath();
ctx.fillstyle = 'rgb(192, 80, 77); / /红色
Ctx.arc(70, 45, 35,0,数学,PI * 2,假);
Ctx.fill();
Ctx.beginPath();
ctx.fillstyle = 'rgb(155, 187, 89); / /绿色
Ctx.arc(45, 95, 35,0,数学,PI * 2,假);
Ctx.fill();
Ctx.beginPath();
ctx.fillstyle = 'rgb(128, 100, 162); / /紫色
Ctx.arc(95, 95, 35,0,数学,PI * 2,假);
Ctx.fill();
}




效果如下:


指定透明度

在普通的CSS,我们还可以带上一个α值时,我们指定一个颜色(但不多,不支持IE9)。看代码:

Javascript

Javascript代码将内容复制到剪贴板。


指针函数(){
拉();
};
函数绘图(){
VaR的画布document.getelementbyid('c1);
如果(帆布| |!!帆布。getContext){ return false;}
VaR CTX = canvas.getcontext(二维的);
Ctx.beginPath();
ctx.fillstyle = 'rgba(192, 80, 77,0.7); / /
Ctx.arc(70, 45, 35,0,数学,PI * 2,假);
Ctx.fill();
Ctx.beginPath();
ctx.fillstyle = 'rgba(155, 187, 89,0.7); / /
Ctx.arc(45, 95, 35,0,数学,PI * 2,假);
Ctx.fill();
Ctx.beginPath();
ctx.fillstyle = 'rgba(128, 100, 162,0.7); / /
Ctx.arc(95, 95, 35,0,数学,PI * 2,假);
Ctx.fill();
}




结果如下:


以上代码基本不变。这是把RGB(R,G,B)为RGBA(R,G,B,A)。A的值也是0~1, 0是完全透明的,而1是完全不透明的(所以A的值实际上是不透明)。


全球透明globalAlpha
这也是一个非常简单的属性的默认值为1,表示完全不透明,以及一系列的0(完全透明)~ 1.0.this属性设置为阴影一样,如果你不想设置全局透明度,你必须在下一个渲染设置globalAlpha。

总结:什么是基于状态的属性

mdash;mdash;globalAlpha

mdash;mdash;globalcompositeopeartion

mdash;mdash;strokeStyle

mdash;mdash;TextAlign,textbaseline

mdash;mdash;线帽,线连接,线宽,miterlimit

mdash;mdash;填充颜色

mdash;mdash;字体

mdash;mdash;shadowblur,shadowcolor,shadowoffsetx,shadowoffsety
让我们通过一个代码的经验~ globalAlpha魔术

Javascript代码将内容复制到剪贴板。






全球透明度

体{背景:URL(, /图像/ BG3 .jpg)重复;}
#帆布{ border: 1px solid # aaaaaa;显示:块;保证金:50px汽车;}





你的浏览器不支持画布让我们换一个!




在window.onload =函数(){
VaR的画布document.getelementbyid(画布);
canvas.width = 800;
canvas.height = 600;
VaR上下文= canvas.getcontext(2D);
context.fillstyle =# FFF;
(00800600)context.fillrect;

context.globalalpha = 0.5;

对于(var i = 0;i < 50;i + +){
VAR r = math.floor(Math.random)*(255);
var g = math.floor(Math.random()* 255);
var b = math.floor(Math.random)*(255);

context.fillstyle =RGB(+ R +

Context.beginPath();
context.arc(Math.random()*()* canvas.height canvas.width,Math.random,Math.random()* 100, 0,math.pi×2);
Context.fill();
}
};







运行结果:


不是很酷吗最后,有点艺术家。