就不说网上那些不负责任的到处抄还存在缺陷的做法了,直接上代码吧。
具体如下(有更好的建议的大牛欢迎评论留下您宝贵的意见与指导):
首先,要在.wxml文件里面创建一个canvas,作用是承载压缩的图片,以供上传的时候获取
这个canvas不能隐藏,否则没效果,可以将其移至屏幕外。
<canvas canvas-id='attendCanvasId' class='myCanvas'></canvas>
然后呢,就是.js文件里面的方法了
// 点击加_压缩
takePhoto: function () {
var that = this;
let imgViewList = that.data.imgViewList; //这个是用来承载页面循环展示图片的
//拍照、从相册选择上传
wx.chooseImage({
count: 4, //这个是上传的最大数量,默认为9
sizeType: ['compressed'], //这个可以理解为上传的图片质量类型(官方给的),虽然没什么卵用,要不然还要我们自己写压缩做什么
sourceType: ['album', 'camera'], //这个是图片来源,相册或者相机
success: function (res) {
var tempFilePaths = res.tempFilePaths //这个是选择后返回的图片列表
that.getCanvasImg(0, 0, tempFilePaths); &