美文网首页
微信小程序图片裁剪使用canvas的坑

微信小程序图片裁剪使用canvas的坑

作者: 耳东金 | 来源:发表于2018-03-05 11:51 被阅读0次

    做微信小程序裁剪功能的时候,发现使用wx.canvasToTempFilePath的时候,一直裁剪出的是一张空白图片。找了好久的原因,我以为是ctx.draw的没成功就做了裁剪的原因,然后我这样做了

    ctx.draw(false,wepy.canvasToTempFilePath({
                canvasId: 'myCanvas',
                x: canvasL,
                y: canvasT,
                width: canvasW,
                height: canvasH,
                destWidth: canvasW,
                destHeight: canvasH,
                fileType: this.imgtype,
                success: (res) => {
                  wepy.hideLoading()
                  // 成功获得地址的地方
                  console.log(res.tempFilePath)
                  wepy.setStorage({
                    key: 'tempFilePaths',
                    data: [res.tempFilePath],
                    success: () => {
                      wepy.navigateTo({
                        url: 'picture'
                      })
                    }
                  })
                  // wepy.previewImage({
                  //   current: '', // 当前显示图片的http链接
                  //   urls: [res.tempFilePath] // 需要预览的图片http链接列表
                  // })
                }
              }))
    

    在ctx.draw的回调函数里面执行wx.canvasToTempFilePath,稍微有了点希望,第一次是空白图片第二次才正常,后来发现可以用定时器解决这个问题!!!

    ctx.drawImage(this.imageSrc)
    ctx.draw(false)
    setTimeout(() => {
        wepy.canvasToTempFilePath({
        canvasId: 'myCanvas',
        x: canvasL,
        y: canvasT,
        width: canvasW,
        height: canvasH,
        destWidth: canvasW,
        destHeight: canvasH,
        fileType: this.imgtype,
        success: (res) => {
            wepy.hideLoading()
            // 成功获得地址的地方
            console.log(res.tempFilePath)
            wepy.setStorage({
            key: 'tempFilePaths',
            data: [res.tempFilePath],
            success: () => {
                wepy.navigateTo({
                url: 'picture'
                })
            }
            })
            // wepy.previewImage({
            //   current: '', // 当前显示图片的http链接
            //   urls: [res.tempFilePath] // 需要预览的图片http链接列表
            // })
        }
        })
    }, 500)
    

    成功解决!!!

    相关文章

      网友评论

          本文标题:微信小程序图片裁剪使用canvas的坑

          本文链接:https://www.haomeiwen.com/subject/jtthfftx.html