当咱们拿到以下base64格式的图片(以下图)时,网络
base64格式的图片数据:dom
使用image标签,src属性添加data:image/png;base64,this
(注意:若imgData返回数据中含有data:image/png;base64,时,src直接写src="{{imgData}}"便可)编码
<image src="data:image/png;base64,{{imgData}}"></image>
按照上面的方法,可是图片显示不出来。。。spa
有一种缘由是由于返回的base64的数据中存在回车换行,须要回车换行替换为''便可code
var base64Image = 'base64数据' // 后台返回的base64数据 var imgData = base64Image.replace(/[\r\n]/g, '') // 将回车换行换为空字符''
而后经过image标签显示便可。对象
使用writeFile及saveImageToPhotosAlbum API保存至相册,具体JS代码以下:blog
(注意:若imgData返回数据中含有data:image/png;base64,时,data参数须要写成:imgSrc.slice(22),意思为:这里是把 data:image/png;base64, 这一段去除)图片
var imgSrc = this.data.imgData;//base64编码 var save = wx.getFileSystemManager(); var number = Math.random(); save.writeFile({ filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.png', data: imgSrc, encoding: 'base64', success: res => { wx.saveImageToPhotosAlbum({ filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.png', success: function (res) { wx.showToast({ title: '保存成功', }) }, fail: function (err) { console.log(err) } }) console.log(res) }, fail: err => { console.log(err) } })
本想使用wx.previewImage来预览图片并保存,可是此API的参数只能是网络连接,因此放弃,采用以上方法保存。get
说明:
1. wx.getFileSystemManager() 是获取文件管理器对象
2. wx.env.USER_DATA_PATH + '/pic' + number + '.png'表示生成一个临时文件名