别听楼上那几个胡说八道,我真是醉了,这种严谨的问题你以为是某度知道么? 你这个返回结果有点点问题,正常返回结果中data是一个buffer形式的东西,你现在这个是二进制的,原因是你在请求的时候,前端应该加上 responseType: 'arraybuffer',才会给你返回buffer格式的图片,在转成base64的就可以,参考我的,我用的是uni开发的;我们遇到的问题一模一样 uni.request({ url: baseUrl+'/client/qrcode.png', data: { scene:res.body.share, page:'pages/init/init', //新用户识别二维码自动跳转到授权页面 width: 600, }, responseType: 'arraybuffer', //必须加上这个,不加的话,返回数据格式不对 header: { 'Content-Type': 'application/x-www-form-urlencoded' //获取二维码的数据,必须使用formdata格式的参数 }, success: (res) => { console.log('小程序调用接口后生成二维码信息',res); const base64 = uni.arrayBufferToBase64(res.data) // 返回的buffer转成base64位的图片 let bufferImg = "data:image/png;base64," + uni.arrayBufferToBase64(res.data); // uni.showLoading({ // title: '正在生成分享码' // }); // 在页面里显示图片 this.QRurl = bufferImg } });
wxacode.createQRCode调用成功后返回的二进制流如何转换为图片呢?[图片]
2022-03-03