1.需要获取用户信息,拿到用户头像图片
wx.getUserProfile({
desc: '用于生成海报', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
wx.downloadFile({
url: res.userInfo.avatarUrl,
success (res) {
if (res.statusCode === 200) {
this.setData({
file_avatar:res.tempFilePath //拿到图片本地地址
})
}
}
})
}
})
2.实例化一个canvas对象,绘制出圆形并将头像固定到圆形中心位置
let ctx = wx.createCanvasContext('myCanvas', this)
this.circleAvatar(ctx, this.data.file_avatar, rpx2px(150),rpx2px(150),25);
circleAvatar(ctx, img, x, y, r){
// 如果在绘制图片之后还有需要绘制别的元素,需启动 save() 、restore() 方法,否则 clip() 方法会
// 导致之后元素都不会被渲染出来
// save():保存当前 Canvas 画布状态
// restore():恢复到保存时的状态
// ctx:实例化canvas对象
// img:图片地址
// x:圆形中心点x坐标
// y:圆形中心点y坐标
// r:圆形半径
ctx.save()
let d = r * 2;
let cx = x - r;
let cy = y - r;
ctx.arc(x, y, r, 0, 2 * Math.PI);
ctx.strokeStyle = '#fff'; // 设置绘制圆形边框的颜色
ctx.stroke(); // 绘制出圆形,默认为黑色,可通过 ctx.strokeStyle = '#FFFFFF',设置想要的颜色
ctx.clip();
ctx.drawImage(img, cx, cy, d, d);
ctx.restore();
},
3.实现效果
文章来源地址https://www.toymoban.com/news/detail-611274.html文章来源:https://www.toymoban.com/news/detail-611274.html
到了这里,关于微信小程序实现canvas画圆形微信头像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!