收藏
回答

wx.canvasToTempFilePath 到底怎么用?

一直报这个错:anvasToTempFilePath: fail canvas is empty

<view class="Canvas_box" wx:if="{{canvasHidden}}">
  <canvas class="Canvas" canvas-id="myCanvas" />
  <view class="save" catch:tap="handSaveImg">保存图片</view>
</view>
createNewImg() {
  var that = this
  var context = wx.createCanvasContext('myCanvas')
  context.setFillStyle('#fff')
  context.fillRect(0, 0, 375, 667)
  var path = '/images/bannerbj.png'
  console.log(path)
  context.drawImage(path, 0, 0, 340, 550)
  context.setFontSize(14)
  context.setFillStyle('#333333')
  context.setTextAlign('center')
  let name = this.data.name
  context.fillText(name, 175, 235)
  context.stroke()
 
  context.setFontSize(50)
  context.setFillStyle('#333333')
  context.setTextAlign('center')
  let score = this.data.score
  context.fillText(score, 162, 180)
  context.stroke()
  // context.draw(false, this.saveCanvasToFile())
  context.draw(false, e => {
    wx.canvasToTempFilePath(
      {
        canvasId: 'myCanvas',
        quality: 1,
        success: res => {
          this.setData({
            canvasTemImg: res.tempFilePath,
            canvasHidden: true
          })
        },
        fail: res => {
          console.log(res)
        }
      },
      this
    )
  })
},
saveCanvasToFile() {
  let that = this
  setTimeout(() => {
    console.log('123123123')
 
    wx.canvasToTempFilePath(
      {
        canvasId: 'myCanvas',
        quality: 1,
        success: res => {
          this.setData({
            canvasTemImg: res.tempFilePath,
            canvasHidden: true
          })
        },
        fail: res => {
          console.log(res)
        }
      },
      this
    )
  }, 2000)
},


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

5 个回答

  • Long.
    Long.
    2020-09-16

    没有专门的人员来解答吗?!

    2020-09-16
    有用 1
    回复 1
    • Long.
      Long.
      2020-09-16
      旧接口新接口混在一起都要崩溃了
      2020-09-16
      回复
  • 周
    2020-05-18

    请问一下传了this也还是报错,有解决方法吗

    2020-05-18
    有用 1
    回复 1
    • 杰伦式、疯狂
      杰伦式、疯狂
      2020-08-03
      请教下,你这个问题之后是怎么解决的
      2020-08-03
      回复
  • 老程
    老程
    2020-02-26

    使用这个真的痛苦啊,这个就是垃圾玩意,老子废了你们。this死了,

    2020-02-26
    有用 1
    回复 1
    • Long.
      Long.
      2020-09-16
      真的要崩溃了,这个问题
      2020-09-16
      回复
  • 张℡小胖
    张℡小胖
    2020-06-29

    这个功能在写我现在也遇到这个需求但是报错

    2020-06-29
    有用
    回复
  • sheng
    sheng
    2019-12-11

    你的canvas都不存在,怎么绘制

    wx:if='{{canvasHidden}}'这里的canvasHidden一开始是false吧

    2019-12-11
    有用
    回复 3
    • JIANGYUNPU
      JIANGYUNPU
      2019-12-11
      点击生成图片就会显示的。我已经解决了,看了一个大神的写法。
      2019-12-11
      回复
    • Chen
      Chen
      2020-01-02回复JIANGYUNPU
      请问是怎么实现的,为啥我的没反应


      canvasCtx.draw(
                  false,
                  wx.canvasToTempFilePath({
                    canvasId: canvasId,
                    success: (ctx) => {
                      console.error('save', ctx);
                      // 获得图片临时路径,用来保存到本地
                    },
                  }),
                );
      2020-01-02
      回复
    • Long.
      Long.
      2020-09-16回复JIANGYUNPU
      有说跟没说一样
      2020-09-16
      回复
登录 后发表内容
问题标签