【绘制】HTML5 Canvas 中颜色与透明度(图文、示例)

本文深入探讨Canvas中颜色和透明度的设置方法,通过实例展示如何使用strokeStyle与fillStyle属性,以及globalAlpha属性来调整图形的色彩与透明度。文章提供了详细的代码示例,包括如何创建不同透明度的矩形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的处女作《Canvas系列教程》在我的Github上正在连载更新,希望能得到您的关注和支持,让我有更多的动力进行创作。

教程介绍、教程目录等能在README里查阅。

传送门:https://github.com/827652549/CanvasStudy

核心属性

Canvas实际应用中,颜色和透明度可以通过strokeStylefillStyle属性来设置。

可以用globalAlpha指定全局的透明度。

strokeStyle和fillStyle的属性值可以是任意有效的CSS颜色字串,在http://dev.w3.org/csswg/css3-color找到完整规范。

指定CSS颜色字串的方式:

  • RGB(red/green/blue,红/绿/蓝)
  • RGBA(red/green/blue/alpha,红/绿/蓝/透明度)
  • HSL(hue/saturation/lightness,色相/饱和度/亮度)
  • HSLA(hue/saturation/lightness/alpha,色相/饱和度/亮度/透明度)
  • 十六进制RGB标注法
  • 颜色名称(eg:"yellow","black"……)

小技巧:你的浏览器可能并不支持全部的SVG1.0标准的颜色名称,因为工作组并不要求所有的CSS3实现程序都支持所有的属性或数值,所以就不包括全部颜色名称了。

 

提示:HSL颜色值

增加HSL支持的原因是RGB有两个缺陷:

  1. 它以硬件为导向。这种描述颜色的形式,是基于“阴极射线管”
  2. 它不直观。

演示链接

https://827652549.github.io/Canvas/Unit2/ColorAndOpaque.html

效果图

左边goldenrod颜色的矩形框是不透明的,右边的蓝色矩形框是半透明的。

案例代码 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>颜色与不透明度</title>
</head>
<body>
<canvas id="canvas" width="700" height="500" style="border: thin solid black"></canvas>
</body>
<script>
    var canvas = document.getElementById('canvas'),
        context = canvas.getContext('2d');

    context.lineJoin = 'round';
    context.lineWidth = 30;

    context.font = '24px Helvetica';
    context.fillText('点击任何处以擦除', 175, 200);

    context.strokeStyle = 'goldenrod';
    context.fillStyle = 'rgba(0,0,255,0.5)';

    context.strokeRect(75, 100, 200, 200);
    context.fillRect(325, 100, 200, 200);

    context.canvas.onmousedown = function (ev) {
        context.clearRect(0, 0, canvas.width, canvas.height);
    }
</script>
</html>

最后要说的

为什么strokeStyle和fillStyle不叫做strokeColor和fillColor呢?

因为他们不仅可以设置颜色,还可以设置渐变色和图案,详细教程请移步本专栏下个文章

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值