收藏
回答

base64的图片数据真机draw不出来

问题模块 框架类型 操作系统 工具版本
开发者工具 小程序 Windows 1.91



如果是 Bug:


base64的二维码数据在调试时用drawimage()可以显示出来,可是到真机上就不显示。把数据包含在image标签里可以显示出来。

是drawimage的bug吗













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

9 个回答

  • 赵文浩
    赵文浩
    2018-03-30

    数据加前缀就行了,如果还draw不出来,看看draw(true)

    2018-03-30
    赞同
    回复
  • how
    how
    2018-03-29

    至今还是不能draw base64 在真机上,开发工具可以,请问怎么解决的啊.. 替换空格也不行啊..

    2018-03-29
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-03-17

    @赵文浩,遇到同样的问题,用base64,在页面用image标签的src显示没有问题,用canvas将小程序码绘制上去,开发工具显示也没有问题,但是如果存到tempfile就显示不出来小程序码,你具体是怎么解决的是否能指点迷津。

    @赵雅,你可以将小程序码返回的数据在你的后台base64_encoded一下 (PHP),然后再返回到小程序端,加上前缀直接就能在image标签里使用了。

    2018-03-17
    赞同
    回复
  • 赵文浩
    赵文浩
    2018-03-16

      var code = res.image.replace(/[\r\n]/g, "") //这是替换空格,我没加这个前缀,返回的小程序码的格式base64的,然后直接加"data:image/png;base64," 


    2018-03-16
    赞同
    回复
  • 赵文浩
    赵文浩
    2018-03-16

     是的,

    2018-03-16
    赞同
    回复
  • 赵雅
    赵雅
    2018-03-14

    @赵文浩,要怎么加前缀?

    res.image 是返回来的 小程序码

     var code = res.image.replace(/[\r\n]/g, "") //这是替换空格


    前缀如何加?

    "data:image/png;base64," +res.image   //这样吗?直接都调试工具都无法绘画出来了

    2018-03-14
    赞同
    回复
  • 翟攀
    翟攀
    2018-03-12

    嗯嗯,我在论坛里找到了问题的原因,需要将base64里的空格、换行都替换掉。

    base64Url = base64Url.replace(/\ +/g, ""); //去掉空格方法

    base64Url = base64Url.replace(/[\r\n]/g, "");


    2018-03-12
    赞同
    回复
  • 赵文浩
    赵文浩
    2018-03-12

    可以啊,前面要加前缀,已经解决了,在保存图片时将输出图片宽、高设置高一些。


    2018-03-12
    赞同
    回复
  • 翟攀
    翟攀
    2018-03-12

    用image标签也不能展示base64类型的图片数据吧,你是怎么显示出来的?


    2018-03-12
    赞同
    回复