//压缩图片
- getCanvasImg: function (index,failNum, tempFilePaths,imgSize){
-
wx.showLoading({
-
title:'上传中...',
-
mask:true
-
})
-
var that = this;
-
if (index < tempFilePaths.length){
-
if(imgSize < 512000){ //小于的不压缩
-
that.photoList.push( tempFilePaths[index-1].tempFilePath)
-
that.suffix.push( tempFilePaths[index-1].tempFilePath.split('.')[1])
-
return
-
}`
-
` wx.getImageInfo({
-
src:tempFilePaths[index].tempFilePath,
-
success(respone){
-
var canvasWidth, canvasHeight;
-
},canvasWidth= respone.width; canvasHeight = respone.height;` //压缩比例 // 最大尺寸限制 var maxWidth = 1000; var maxHeight = 1000; // 目标尺寸 var targetWidth = canvasWidth var targetHeight = canvasHeight; //等比例压缩,如果宽度大于高度,则宽度优先,否则高度优先 if (canvasWidth > maxWidth || canvasHeight > maxHeight) { if (canvasWidth / canvasHeight > 1) { // 宽图片 targetWidth = maxWidth targetHeight = Math.round(maxWidth * (canvasHeight / canvasWidth)) } else { // 高图片 targetHeight = maxHeight targetWidth = Math.round(maxHeight * (canvasWidth / canvasHeight)) } } //尝试压缩文件,创建 canvas var ctx = wx.createCanvasContext('attendCanvasId'); ctx.clearRect(0,0,targetWidth,targetHeight) ctx.drawImage(tempFilePaths[index].tempFilePath, 0, 0, targetWidth, targetHeight);` ` ctx.draw() that.$set(that,'canvasWidth',targetWidth) that.$set(that,'canvasHeight',targetHeight) setTimeout(function () { index = index + 1;//上传成功的数量,上传成功则加1 wx.canvasToTempFilePath({ canvasId: 'attendCanvasId', destWidth: targetWidth, destHeight: targetHeight, fileType:'jpg', success: function success(resP) { var a = tempFilePaths[index-1].tempFilePath.split('.')[1] wx.compressImage({ src: resP.tempFilePath, // 图片路径 quality: 95, // 压缩质量 success(ressss){ upLoadPics( [ressss.tempFilePath] ,0,'',a).then(urlS => { that.sendMessae(urlS, 1); }).catch((err) => { console.log(err); }); }, }) }, fail: function (e) { // console.log(e,'上传失败') failNum += 1;//失败数量,可以用来提示用户 that.getCanvasImg(inedx,failNum,tempFilePaths); } }); },500) }, }) }else{ wx.hideLoading() }
-
//上传图片
-
addPhotoFn(sourceType) {
-
var _this = this;
-
wx.chooseMedia({
-
count: 1,
-
sizeType: ['original'],
-
mediaType:['image'],
-
sourceType:['album', 'camera'],
-
success: function (res) {
-
_this.getCanvasImg(0,0,res.tempFiles,res.size)
-
},fail:(err)=>{
-
console.log(err,'上传错误')
-
}
-
})
-
},
-
-
- `s.juejin.cn/ds/6Jq5tj7/