收藏
回答

Canvas2d wx.canvasToTempFilePath 在什么时候 调用才是最合适的?

1首先 我是在整个海报全部绘制完成后 在最后调用了wx.canvasToTempFilePath 发现只有背景 没有图片

2改进方法 定义一个变量 count = 0 在所有绘制图片的地方加上1 循环定时器判断绘制完成的图片的数量和想要绘制的图片数量是否相等,相等则调用,最后发现在模拟器每次都是正常的 但是在真机上 ios13 每次绘制头像的时候count都不会自增 导致数量不相等 不能绘制海报 下面是绘制图片的代码

// 绘制图片
drawImg = (ctx, url, x, y, w, h) => {
  // 创建图片
  const img = this.canvas.createImage()
  // 设置图片路径
  img.src = url
  img.onload = () => { // 图片加载完成 绘制图片
    ctx.drawImage(img, x, y, w, h)
    this.imgCount++ // 绘制成功一张 把图片的个数+1
    console.log(`绘制图片的count` , this.imgCount)
  }
}
回答关注问题邀请回答
收藏

2 个回答

  • phoenixor
    phoenixor
    2020-03-14

    这个img.onload有有加载时间,所以我把绘图的方法抽离出来,写成了promise,这样就能保证图片加载完成之后再做一些事情

    2020-03-14
    有用
    回复
  • Admin²⁰²¹
    Admin²⁰²¹
    2020-03-12

    我都是在所有图片draw success后,在里面再setTimeOut canvasToTempFilePath,大的图用2000,小的用1000


    2020-03-12
    有用
    回复 2
    • 靜待雨落
      靜待雨落
      2020-03-12
      我是再全部海报都绘制完成 调用的接口
      2020-03-12
      回复
    • Admin²⁰²¹
      Admin²⁰²¹
      2020-03-12回复靜待雨落
      这个时候不一定真正画完的,需要setTimeOut
      2020-03-12
      回复
登录 后发表内容
问题标签