赞
踩
我们有个人脸识别门闸的功能,小程序上上传人脸照片,然后门闸识别人脸开门。图片大小要在在200kb,但是也不能压缩的太小,因为大小有可能识别不到或者要走很近才能识别。所以选择递归的方式实现图片的压缩。
toTakePhoto(){ wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['album', 'camera'], sizeType: ['compressed'], success: (res) => { console.log(res, 111) wx.showLoading({ title: '图片上传中', }) let tempFile = res.tempFiles && res.tempFiles[0] ? res.tempFiles[0] : "" let Filesize = tempFile.size / 1024 //文件大小默认为B换算为KB if (tempFile.tempFilePath) { this.setData({ "form.visitor_img": "" }) console.log(Filesize, "Filesize") if (Filesize && Filesize < 200) { this.toCheckPhoto(tempFile.tempFilePath) } else { this.compressImage(tempFile.tempFilePath) } } } }) }, compressImage(tempFilePath, quality = 100) { wx.compressImage({ src: tempFilePath, compressedHeight: 432, compressedWidth: 352, quality, success: (re) => { console.log('compressImage-----', re); console.log(quality, "quality") if (this.isPhotoSizeOk(re.tempFilePath)) { this.toCheckPhoto(re.tempFilePath) } else { if (quality > 0) { this.compressImage(tempFilePathh, quality - 10) } else { //确定提交 if (!this.isPhotoSizeOk(re.tempFilePath)) { wx.showToast({ title: "图片需小于200k", icon: "none" }) } } } }, fail: (err) => { console.log('compressImage-----fail', err); this.isPhotoSizeOk(re.tempFilePath) } }) },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。