背景
在开发微信小程序时,个人头像直接选择本地文件上传,由于图片尺寸与头像展示尺寸不匹配,导致头像会被压缩拉伸,显示失真。在uniapp插件市场搜索插件发现现有插件不太好用。
方法
方法很简单,调用了微信原生的裁剪图片接口方法wx.cropImage(),代码示例如下。
<template>
<view class="avater">
<image class="avater-img" :src="headAddress" @click="getImageAndUpload()"></image>
<p>点击头像修改</p>
</view>
</template>
<script>
export default {
data() {
return {
headAddress: ''
}
},
methods: {
async getImageAndUpload() {
try {
const chooseImageRes = await uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera']
});
const tempFilePaths = chooseImageRes.tempFilePaths;
if (tempFilePaths.length === 0) {
throw new Error('没有选择图片');
}
c