微信小程序后台返回的二进制二维码数据,canvas中如何显示?

首先将后台返回的二进制流转换为base64格式,然而问题又来了,生成的base64图片,在开发工具上能正常显示在画布上,但是在真机上无法显示。

经过百度发现一个办法,canvas上需要保存到本地生成一个虚拟的文件再去渲染

直接上代码:

const fsm = wx.getFileSystemManager();
let showImgData = wx.arrayBufferToBase64(res.data);
//将二进制流转化为base
showImgData = showImgData.replace(/\ +/g, ""); // 去掉空格方法
showImgData = showImgData.replace(/[\r\n]/g, "");
const buffer = wx.base64ToArrayBuffer(showImgData);
const timestamp = Date.parse(new Date());  
const fileName = `${wx.env.USER_DATA_PATH}/share_img_${timestamp}.png`;
fsm.writeFileSync(fileName, buffer, 'binary');//处理完成

绘画:

const ctx =  wx.createCanvasContext('myCanvas');
ctx.drawImage(showImgData , 280/ 2 * w, 570/ 2 * w, 90/ 2 * w, 90/ 2 * w)

版权声明:除特别注明外,本站所有文章均为田珊珊个人博客原创

转载请注明:出处来自田珊珊个人博客 » 微信小程序后台返回的二进制二维码数据,canvas中如何显示?

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注