// 图片压缩方法
translate(imgSrc, scale, callback) {
var img = new Image();
img.src = imgSrc; //可以是临时路径
img.onload = function() {
var that = this;
var h = that.height; // 默认按比例压缩
var w = that.width;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var width = document.createAttribute("width");
width.nodeValue = w;
var height = document.createAttribute("height");
height.nodeValue = h;
canvas.setAttributeNode(width);
canvas.setAttributeNode(height);
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', scale); //压缩比例
canvas = null;
callback(base64);
}
},
可以传入临时路径,相对路径,网络路径的图片进行压缩,最后返回base64格式的图片
this.translate(temp, 0.8, async imgURL => {
// 上传图片
await uni.uploadFile({
url: that.uploadFileUrl,
filePath: imgURL,//压缩后的图片路径 base64格式
name: that.fileKeyName,
header: that.header,
success: res => {
// 上传完成后处理
}})
})