科技微讯

关于 iOS 小程序 2d Canvas drawImage 图片为空白的问题

微信小程序使用 2d canvas,先通过 ctx.drawImage() 把图片绘制在 canvas 上,接着用 wx.canvasToTempFilePath() 从 canvas 生成本地图片,正常来说会返回该图片的本地地址,但 iOS 拿到的可能是一张空白图片的地址。

回应一下标题,其实准确来说,并不是 ctx.drawImage() 为空,而是 wx.canvasToTempFilePath() 为空(拿到了一张纯白色的图片)。

这似乎是一个广泛存在的问题

微信小程序官方文档表示 2d canvas 的接口都是同步绘制,但在 iOS 的实际表现似乎并非如此,之所以拿到空白图片,应该是因为 ctx.drawImage() 还未执行完毕,就开始执行 wx.canvasToTempFilePath()

要解决这个问题,只需要在 ctx.drawImage() 后等一小会,再 wx.canvasToTempFilePath(),具体请看代码片段

暂无评论