小程序 绘制圆角矩形和圆角图片

13 篇文章 0 订阅
9 篇文章 0 订阅

本文介绍了在小程序绘制海报中所要绘制圆角图片的一种方法

参数介绍

··
ctx : 是指获取到的当前小程序方法 方法如下

          <canvas canvas-id="DetailsshareCanvas" style="width: 600rpx;height:880rpx;position:relative;" catchtouchmove="myCatchTouch"></canvas> 
        var ctx = wx.createCanvasContext('DetailsshareCanvas');

·
img:所绘制的图片注意网络图片地址要用 wx.getImageInfo 进行加载后的格式
left 和 top:指要绘制的图片所在canvas 中的位置如下图点的位置
width 和 height :是指图片的宽高
w:参数为小程序适配单位方法和详情看 https://blog.csdn.net/weixin_43365995/article/details/94392560
fillet :为要绘制的圆角 半径
以下传值均为 宽为 750 标准的单位(指宽分为750份)


在这里插入图片描述

  /* 绘制圆角图片 */ 
  imgfillet(ctx, img, left, top, width, height, w, fillet) {
    //     ctx   图片  起始点X Y   图片宽  高   适配单位  圆角半径
    ctx.beginPath();
    ctx.save();
    left = left / 2 * w;
    top = top / 2 * w;
    width = width / 2 * w;
    height = height / 2 * w;
    fillet = fillet / 2 * w;
    ctx.setLineWidth(1);
    ctx.setStrokeStyle('#ffffff');
    ctx.moveTo(left + fillet, top);           // 创建开始点
    ctx.lineTo(left + width - fillet, top);          // 创建水平线
    ctx.arcTo(left + width, top, left + width, top + fillet, fillet); // 创建弧
    ctx.lineTo(left + width, top + height - fillet);         // 创建垂直线
    ctx.arcTo(left + width, top + height, left + width - fillet, top + height, fillet); // 创建弧
    ctx.lineTo(left + fillet, top + height);         // 创建水平线
    ctx.arcTo(left, top + height, left, top + height - fillet, fillet); // 创建弧
    ctx.lineTo(left, top + fillet);         // 创建垂直线
    ctx.arcTo(left, top, left + fillet, top, fillet); // 创建弧
    ctx.stroke(); // 这个具体干什么用的?
    ctx.clip();
    ctx.drawImage(img, left, top, width, height);
    ctx.restore();
    ctx.closePath();
  },

看完不懂或者有其他需求写不出来请留言博主必回

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值