赞
踩
背景:在进行人脸采集,需要上传图片,后端需要的格式是图片大小200kb,这个时候就需要我们上传图片之后进行裁剪。
实现思路
A uni.chooseMedia打开相册获取图片路径(uni.chooseImage(OBJECT) | uni-app官网 (dcloud.net.cn))
B 将获取到的图片路径传入wx.cropImage对图片进行裁剪(wx.cropImage(Object object) | 微信开放文档 (qq.com))
C 将裁减后的图片路径通过uni.uploadFile上传到服务器生成网络地址(uni.uploadFile(OBJECT) | uni-app官网 (dcloud.net.cn))
出现图片裁剪
代码如下:
- wx.chooseMedia({
- count: 1, // 默认9
- sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
- sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
- success: function (res) {
- wx.cropImage({
- src: res.tempFiles[0].tempFilePath, // 图片路径
- cropScale: '1:1', // 裁剪比例
- success: function (res) {
- console.log(res, '我来了')
- if (!/(\.jpg|\.png|\.jpeg)$/.test(res.tempFilePath.toLowerCase())) {
- wx.showToast({
- title: '请上传jpg、png或jpeg格式的照片',
- icon: 'none',
- duration: 2000
- });
- return;
- }
- var tempFilePaths = res.tempFilePath;
- // 压缩图片
- wx.compressImage({
- src: tempFilePaths,
- quality: 80, // 压缩质量 0-100
- success: function (compressedRes) {
- var compressedFilePath = compressedRes.tempFilePath;
- // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
- wx.showLoading()
- wx.uploadFile({
- url: app.globalData.url +
- '/content/interface_faceAcquisition_upload.shtml',
- filePath: compressedFilePath,
- header: {
- "Content-Type": "multipart/form-data",
- },
- name: 'imgFile',
- formData: {
- 'ownerId': self.data.id
- },
- success: function (res) {
- console.log('上传', res)
- wx.hideLoading()
- if (res.statusCode == 200) {
- var result = JSON.parse(res.data);
- if (result.code == 200) {
- wx.navigateTo({
- url: '../successResults/successResults?img=' +
- compressedFilePath
- })
- } else {
- wx.showToast({
- title: result.message,
- icon: 'none'
- })
- }
-
- } else {
- wx.showToast({
- title: '上传出错',
- icon: 'none'
- })
- }
- //do something
- },
- fail(res) {
- wx.hideLoading()
- }
- })
- },
- fail(compressError) {
- console.log('压缩错误', compressError)
- }
- })
- }
-
- })
-
-
-
- }
- })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。