因为手机上微信小程序不支持canvas绘制base64图片,于是把base64图片存入本地文件系统,然后读取本地路径绘制入canvas画布。
但是当base64图片改变时,图片被覆盖存入本地(能确定图片文件已被新base64图覆盖),可canvas画布中的图片还是第一次存入时的图片
相关代码如下:
// 获取接口响应的base64图片,并保存在本地文件系统
getImg () {
this.$http.get('/swipe').then(res => {
const fs = wx.getFileSystemManager()
const bufferSrc = wx.base64ToArrayBuffer(res.img)
const src = wx.env.USER_DATA_PATH + '/src.png'
fs.writeFileSync(src, bufferSrc, 'binary')
this.imgPath = src
})
},
// 绘制canvas
drawImg () {
const ctx = wx.createCanvasContext('img-ctx', this)
ctx.drawImage(this.imgPath, 0, 0, 100, 200)
ctx.restore()
ctx.draw();
}
想要的效果是重新调用接口获取到新的base64图片后,canvas画布中的图片相应的也绘入新图。
多番尝试过后依然未能解决,我应该从哪方面着手去解决问题?