收藏
回答

使用taro.canvasToTempFilePath报错,怎么解决?

使用taro开发微信小程序使用canvas画布的taro.canvasToTempFilePath报"canvasToTempFilePath: fail canvas is empty"错误,基础库是2.11.2,一直没找到原因

回答关注问题邀请回答
收藏

2 个回答

  • They Say
    They Say
    06-24

    taro只不过是封装了一层wx.canvasToTempFilePath。调用的api都是原生的。和Taro没有关系。如果你遇到的这个报错,同样的用原生wx.canvasToTempFilePath写出来的代码片段也会报错。

    所以请提供代码片段吧

    06-24
    有用
    回复 2
    • 【坏タ孩子丿
      【坏タ孩子丿
      06-24
      onClickHeadImage(value) {
          console.log('value----', value);
          this.setState({
            surface: value
          })
          let _this =this
          Taro.chooseImage({
            count: 1, // 默认9
            sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有,在H5浏览器端支持使用 `user` 和 `environment`分别指定为前后摄像头
          }).then(res => {
            console.log('choose')
            // showLoading()
            let url = res.tempFilePaths[0] //temp文件的url
            Taro.getImageInfo({src: url}).then(res => {
              console.log(res, 'image')
              let canvasHeight = 560
              let canvasWidth = 750
              const canvas = Taro.createCanvasContext("myCanvas", _this.$scope)
              canvas.drawImage(res.path, 0, 0, canvasWidth, canvasHeight)
              canvas.stroke();
              canvas.draw(true)
              console.log('draw')
              Taro.canvasToTempFilePath({
                canvasId: "myCanvas",
                fileType:'jpg',
                width: canvasWidth,
                height: canvasHeight,
                destWidth: canvasWidth*2,
                destHeight: canvasHeight*2,
                success: res2 => {
                  console.log(res2, 'res2')
                  // 上传压缩后的图片 res2.tempFilePath
                  // this.uploadLoader(fileNameKey,res2.tempFilePath,uploadType)
                  this.encodeImage(res2)
                }
              }, _this)
            })
          })
        }
      06-24
      回复
    • 【坏タ孩子丿
      【坏タ孩子丿
      06-24
      您看看这样写错有错误吗? taro里有该api就使用了,没有用原生的
      06-24
      回复
  • 祺爸💎
    祺爸💎
    06-24

    这个应该去taro社区问

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    06-24
    有用
    回复
登录 后发表内容
问题标签