canva画图 图片居中裁剪_小程序canvas绘制圆形图片并且居中

本文介绍了如何在canvas画布上绘制圆形头像,并确保其在小程序中居中显示。首先封装了一个请求网络图片的方法,然后通过计算圆心位置和利用canvas的clip方法来裁剪圆形图像,最后绘制头像图片。
摘要由CSDN通过智能技术生成

在canvas画布中绘制圆形头像居中显示是比较常见的,直接上代码:

假设已经设置好了canvas的宽高;

// 先封装一个请求图片的方法。

methods: {

getNetworkImage(url) {

return new Promise((resolve,reject) => {

uni.downloadFile({

url,

success: (e) => {

const p = e.tempFilePath

if (p.indexOf('json') > -1) {

reject(p)

return false

}

resolve(p)

},

fail: (r) => {

reject(r)

}

})

})

},

}

// 绘制头像

const drawAvatar = (avatarUrl) => {

const avatarWidth = ctx.width * 0.15

const avatarLeft = (ctx.width - avatarWidth) / 2

const avatarTop = ctx.height * 0.4

ctx.save()

ctx.beginPath()

ctx.arc(avatarLeft + avatarWidth / 2, avatarTop, avatarWidth / 2, 0, Math.PI * 2, false)

ctx.fillStyle="#f3c227"

ctx.fill()

ctx.clip()

ctx.drawImage(avatarUrl,  avatarLeft, avatarTop - avatarWidth / 2, avatarWidth, avatarWidth)

ctx.restore()

}

// 调用,这里请求图片try catch比较保险

let avatarPath = ''

try {

avatarPath = await this.getNetworkImage(this.userData.headimgurl)

} catch(e) {

avatarPath = '/static/img/default_avatar.png'

}

drawAvatar(avatarPath)

0d0bad45ad685b381d524e86a7e20409.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值