现在在做一个图片上传的功能,但是用户上传图片太大会导致上传时间太长,小程序自带的chooseImage里面的压缩有限,现在找到一种办法,就是canvas里面的toDataURL方法,可以把图片转为base64的编码,但是调用此方法需要选中dom元素,代码如下
compressImage (url) {
let cvs = document.createElement('canvas')
let ctx = cvs.getContext('2d')
let img = new window.Image()
img.src = url
img.onload = () => {
cvs.width = img.width
cvs.height = img.height
setTimeout(() => {
ctx.drawImage(img, 0, 0, cvs.width, cvs.height)
this.newImageData = cvs.toDataURL('image/jpeg', 0.1)
}, 0)
this.showPreviewer = true
}
},
微信小程序无法选中dom元素,所以想知道1.如何调用此方法
2.还有一种方法就是canvas画图,直接保存。想知道chooseImage里面的压缩,toDataURL和canvas画图保存哪种办法好一点
相关分类