html52.com
我爱小程序-开发者交流社区

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

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



如果是 Bug:


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

是drawimage的bug吗













网友回复

赵文浩:

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

パ:

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

禹城苗方祛痘养生:

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

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

赵文浩:

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


赵文浩:

 是的,

赵雅:

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

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

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


前缀如何加?

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

翟攀:

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

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

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


赵文浩:

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


翟攀:

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


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付