微信小程序图片压缩(支持多张图)
原理上是使用canvas实现的,小于100k的图片不做压缩。
var {getCanvasImg} = require('../../common/img-compression.js'); // 在page上面按需引入
然后在wx.chooseImage接口成功回调中调用(使用tempFiles字段,因为它包含了图片大小)
let tempFiles = result.tempFiles;
let i = 0;
var arr = [];
// par1:this; par2:图片压缩数组,含size字段;par3:递增值,默认先传入0; par4:接收压缩结果数组; par5:设置画布大小回调函数; par6:设置压缩后的图片数组
getCanvasImg(that, tempFiles, i, that.data.quality, arr, that.setCanvasSize, that.setCompImg);
在定义两个回调函数,用于设置画布大小和接收压缩结果
// 设置画布大小
setCanvasSize(cWidth, cHeight){
this.setData({
cWidth,
cHeight
});
},
// 接收压缩结果
setCompImg(imagePath){
this.setData({
imagePath // 压缩结果
})
},
至此使用步骤已介绍完毕,新手上路,大佬勿喷!附上图片
img-compression下载地址:链接:https://pan.baidu.com/s/1scx4RccI8x3MgtVFvAhBKw
提取码:12xh