收藏
回答

wxacode.createQRCode调用成功后返回的二进制流如何转换为图片呢?

回答关注问题邀请回答
收藏

4 个回答

  • Samuel
    Samuel
    2022-03-03

    别听楼上那几个胡说八道,我真是醉了,这种严谨的问题你以为是某度知道么?

    你这个返回结果有点点问题,正常返回结果中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
    						    }
    						});
    


    2022-03-03
    有用 1
    回复
  • SuperYang
    SuperYang
    2022-02-23

    不需要在云函数或者服务端进行转化。

    看你需不需要将这个小程序码拿出来用,如果只是在小程序页面内展示,直接用image组件显示就行,放进src就可以了。

    如果需要拿出来用,也就是转成实际的图片的话,将base64格式的数据转换成图片,并储存在小程序的临时文件路径里面。假设绘制海报,那把这个临时路径扔进去就行。

    参考我的博客:https://blog.csdn.net/weixin_44702572/article/details/113967087

    2022-02-23
    有用
    回复
  • 游戏人生
    游戏人生
    2022-02-23

    建议用云函数解决,获取buffer转化成 图片

    2022-02-23
    有用
    回复
  • Code Weaver
    Code Weaver
    2022-02-23

    https://blog.csdn.net/qq_28988969/article/details/77969365

    2022-02-23
    有用
    回复
登录 后发表内容