HTML5 Canvas 绘图方法整理 【十七、Canvas透明度 / 图形叠加、层次、冲突】

Canvas 设置透明度 :
语法: ctx.globalAlpha= 属性值;
属性值是 0 - 1之间的数字。 同CSS一样的透明度属性值

不过fillStyle 或 strokeStyle 本身也可以自己设定透明值, 所以用到globalAlpha 并不多,

不过还是了解下,谁知道哪天会有什么反人类的要求会用到呢 (。・・)ノ

    <script>
    window.onload=function () {
        let cans = document.getElementById("myCanvas");
        let ctx = cans.getContext("2d");

        let text="要显示的字符串文本";
        ctx.font="bold 25px KaiTi";
        ctx.fillStyle="#7C0DFA";
        ctx.fillText(text,30,50);

        ctx.globalAlpha=0.5;  //透明度设置为一半:0.5
        ctx.fillText(text,30,100);

    }
</script>

效果图:
这里写图片描述


然后就是 图形叠加或冲突 等的样式了,这个用起来就类似CSS的 Z-index 感觉有点像,可以设置哪个图形显示的位置居上或居下,也可以更加的细分的画出 叠加到一起时的各种样式,还是挺有意思的:

语法: ctx.globalCompositeOperation=”属性值”

<script>
    window.onload=function () {
        let cans = document.getElementById("myCanvas");
        let ctx = cans.getContext("2d");

        ctx.beginPath();
        ctx.arc(100,50,25,0,360*Math.PI/180);
        ctx.closePath();
        ctx.fillStyle="#f00";
        ctx.fill();      //绘制目标图像1

        ctx.beginPath();
        ctx.arc(200,50,25,0,360*Math.PI/180);
        ctx.closePath();
        ctx.fillStyle="#FFFC43";
        ctx.fill();       //绘制目标图像2

        //关键是这句:
        ctx.globalCompositeOperation="destination-over";    //在源图像上方显示目标图像。

        //个人其实觉得xor 比较好看,童鞋们也可以试试 ,(使用下面这句记得注释掉上面那句啊)
    //  ctx.globalCompositeOperation="xor";    //冲突的地方透明显示。

        ctx.beginPath();
        ctx.arc(150,110,75,0,360*Math.PI/180);
        ctx.closePath();
        ctx.fillStyle="#1FA2FF";
        ctx.fill();    //绘制源图像

    }
</script>

效果图:
这里写图片描述

关于globalCompositeOperation 更多的属性值如下:

source-over :默认。在目标图像上显示源图像。

source-atop : 在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。

source-in : 在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。

source-out : 在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。

destination-over : 在源图像上方显示目标图像。

destination-atop : 在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。

destination-in : 在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。

destination-out : 在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。

lighter : 显示源图像 + 目标图像。

copy : 显示源图像。忽略目标图像。

xor : 使用异或操作对源图像与目标图像进行组合。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值