wxml:
<canvas class="canvas" style="height:{{windowHeight}}px;width:{{windowWidth}}px;" canvas-id='attendCanvasId'></canvas>
wxss:
.canvas{
position: fixed;
top:-9999999999999999999px;left:0;
z-index: -1;
background: #fff;
}
js:
let that = this;
var windowWidth = 750; //图片压缩的宽度
var quality=0.9;//图片的质量,目前仅对 jpg 有效。取值范围为 (0, 1],不在范围内时当作 1.0 处理。
wx.getImageInfo({
src: tempFilePaths,
success(imgres) {
var imgwidth = imgres.width;//图片实际宽度
var imgheight = imgres.height;//图片实际高度
if (imgwidth > windowWidth) {//判断图片实际宽度是否大于要压缩的宽度,这个判断也可以不要,根据实际需求来
that.setData({
windowWidth: windowWidth,//图片压缩宽度
windowHeight: (windowWidth * imgheight) / imgwidth//计算图片压缩之后的高度,与图片原比例一致
})
// 放到对应的wxml页面
const ctx = wx.createCanvasContext('attendCanvasId');//canvas id
ctx.drawImage(tempFilePaths, 0, 0, windowWidth, (windowWidth * imgheight) / imgwidth);
ctx.draw(false, function () {
wx.canvasToTempFilePath({
canvasId: 'attendCanvasId',
fileType: imgres.type == 'png' ? 'png' : 'jpg', //目标文件的类型,这里可以根据实际情况来,
quality: quality, //图片的质量,目前仅对 jpg 有效。取值范围为 (0, 1],不在范围内时当作 1.0 处理。
success(s){
console.log("压缩之后的图片", s);
}
});
});
}
}
})