微信小程式中base64圖片的顯示與儲存

S筱瀟S四維Smile發表於2020-12-29

當我們拿到如下base64格式的資料時:

顯示

使用image標籤,src屬性新增data:image/png;base64,

(注意:若imgData返回資料中含有data:image/png;base64,時,src直接寫src="{{imgData}}"即可)

<image src="data:image/png;base64,{{imgData}}"></image>

顯示不出來?

按照上面的方法,但是圖片顯示不出來。。。

有一種原因是因為返回的base64的資料中存在回車換行,需要回車換行替換為''即可

var base64Image = 'base64資料' // 後臺返回的base64資料
var imgData = base64Image.replace(/[\r\n]/g, '') // 將回車換行換為空字元''

然後通過image標籤顯示即可。

如何儲存?

使用writeFile及saveImageToPhotosAlbum API儲存至相簿,具體JS程式碼如下:

(注意:若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)
      }
    })

 

相關文章