canvas 画圆形头像
发布于 5 年前 作者 lfu 1171 次浏览 来自 分享

const ctx = wx.createCanvasContext(‘myCanvas’);

wx.getImageInfo({
 src: liveImg, //网络图片
 success(res) {
  var avatarurl_width = 30; //绘制的头像宽度
  var avatarurl_heigth = 30; //绘制的头像高度
  var avatarurl_x = 5; //绘制的头像在画布上的位置
  var avatarurl_y = 5; //绘制的头像在画布上的位置
  ctx.save();
  ctx.beginPath(); //开始绘制
  //先画个圆 前两个参数确定了圆心 (x,y) 坐标 第三个参数是圆的半径 四参数是绘图方向 默认是false,即顺时针
  ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI *2, false);
  ctx.closePath()
  ctx.clip(); //画好了圆 剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 这也是我们要save上下文的原因
  ctx.drawImage(res.path, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth); // 推进去图片,必须是https图片
  ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 还可以继续绘制
  ctx.draw(true)
},fail() {
  console.log(“失败”)
 }
})

1 回复

解释很到位,贴个老的代码吧。

回到顶部