猿问

微信小程序中的图片压缩问题

现在在做一个图片上传的功能,但是用户上传图片太大会导致上传时间太长,小程序自带的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画图保存哪种办法好一点


牛魔王的故事
浏览 1429回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答