微信小程序canvas 多图叠加 切圆角

// 画圆角

    roundRect(ctx, x, y, w, h, r) {

        var min_size = Math.min(w, h);

        if (r > min_size / 2) r = min_size / 2;

        // 开始绘制

        ctx.beginPath();

        ctx.moveTo(x + r, y);

        ctx.arcTo(x + w, y, x + w, y + h, r);

        ctx.arcTo(x + w, y + h, x, y + h, r);

        ctx.arcTo(x, y + h, x, y, r);

        ctx.arcTo(x, y, x + w, y, r);

        ctx.closePath();

        return ctx;

    },
// 需要切圆角的头像
                const ctx = canvas.getContext('2d')
                const avatar = canvas.createImage();
                avatar.src = 'https://img1.baidu.com/it/u=3083309252,921836114&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1658509200&t=c9387884f27707bd340073778d6c17cc';
                avatar.onload = () => {
                    // 创建图片纹理
                    ctx.save()
                    this.roundRect(ctx, this.data.textObj.avatarIconX, this.data.textObj.avatarIconY, 50, 50, 7) 
                    ctx.clip()
                    ctx.drawImage(avatar, this.data.textObj.avatarIconX, this.data.textObj.avatarIconY, 50, 50);
                    ctx.restore()
                }

  1.  保存裁切前的canvas
  2. 画圆角矩形
  3. 将canvas裁切成你所画的圆角矩形
  4. 放入图片
  5. 恢复到裁切前的canvas(此步骤不会影响第四步)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值