收藏
回答

小程序canvas绘制base64的二维码图片,真机上不显示

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 客户端 6.7.3 1.9.0

后端接口返回二维码的base64格式图片,canvas绘制图片:ctx.drawImage(qrcodePath, xx, xx, xx, xx),开发者工具显示正常,但是真机上无法显示canvas绘制的二维码图片。手机是iphone 6sp


最后一次编辑于  2018-12-05  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员-白柿子
    社区技术运营专员-白柿子
    2018-12-05

    canvas不支持base64格式图片

    2018-12-05
    赞同
    回复 1
    • 我是好好
      我是好好
      2018-12-06

      canvas支持二进制流的图片吗

      2018-12-06
      回复
  • 卢霄霄
    卢霄霄
    2018-12-05

    writeFile 了解一下

    2018-12-05
    赞同 1
    回复 13
    • 我是好好
      我是好好
      2018-12-06

      试了,write之后怎么去读,我用wx.downloadfile和getimageinfo去读取writefile的图片,提示invalid。求指导

      2018-12-06
      回复
    • 卢霄霄
      卢霄霄
      2018-12-06回复我是好好

      write的时候,encoding要选 base64,然后就可以drawImage啦

      2018-12-06
      回复
    • 我是好好
      我是好好
      2018-12-06回复卢霄霄
                  this.QRCodeSrc = 'data:image/png;base64,'+ (res[2] && res[2].body || '') // 生成的base64二维码
                  fs.writeFile({
                      filePath: `${wx.env.USER_DATA_PATH}/resource/demo.png`,
                      data: this.QRCodeSrc,
                      encoding: 'base64',
                      success(res) {
                          console.log('writeFile:', res)
                          wx.getImageInfo({
                              src: `${wx.env.USER_DATA_PATH}/resource/demo.png`,
                              success(res) {
                                  console.log('getImageInfo:', res)
                                  // this.ctx.drawImage('http://usr/resource/demo.png', 12, 384, 80, 80);
       
                              },
                              fail(err) {
                                  console.error(err)
                                  // this.ctx.drawImage('http://usr/resource/demo.png', 12, 384, 80, 80);
                              }
                          })
                      }, fail(err) {
                          console.error(err)
                      }


      2018-12-06
      回复
    • 我是好好
      我是好好
      2018-12-06回复卢霄霄

      wx.getImageInfo时报错: {errMsg: "getImageInfo:fail invalid"},你看我这代码哪里有问题吗

      2018-12-06
      回复
    • 我是好好
      我是好好
      2018-12-06回复我是好好

      貌似我传的data是base64数据,但是我转二进制,也是报的相同的错误

      2018-12-06
      回复
    查看更多(8)
  • Nf
    Nf
    2018-12-10

    问题如果我用canvas画图时速度非常快,假设1秒20张,先保存到本地再读取的方法就会非常慢,真机能直接用canvas读二进制图片显示吗?

    2018-12-10
    赞同
    回复
  • 我是好好
    我是好好
    2018-12-05

    https的图片可以先wx.downloadFile或者wx.getImageInfo下载下来,再去绘制图片,真机上正常显示,但是对于base64图片调用上面俩API会报错,图片路径不对。求问base64的图片,用canvas画时,真机上如何正确的显示



    2018-12-05
    赞同
    回复