微信小程序把base64的图片保存到手机相册

219 阅读1分钟

在这之前试过把base64的图片转移保存到画布然后保存到手机,但是真机调试的时候不支持这种方式,希望各位不要再去汤坑

下面是可行的方法:
scene 是base64文件,打印结果如下:

在这里插入图片描述
不说废话,直接上代码:(结尾有代码说明)

  
    var aa = wx.getFileSystemManager();
    console.log('that.data.scene:', that.data.scene)
    aa.writeFile({
      filePath:wx.env.USER_DATA_PATH+'/test.png',
      data: that.data.scene.slice(22),
      encoding:'base64',
      success: res => {
        wx.saveImageToPhotosAlbum({
          filePath: wx.env.USER_DATA_PATH + '/test.png',
          success: function (res) {
            wx.showToast({
              title: '保存成功',
            })
          },
          fail: function (err) {
            console.log(err)
          }
        })
        console.log(res)
      }, fail: err => {
        console.log(err)
      }
    })

代码解析:

wx.getFileSystemManager() 是获取文件管理器对象;

aa.writeFile 是写文件,详细参数可 点击查看 官方文档说明。

wx.env.USER_DATA_PATH+’/test.png’ 这里是创建一个临时文件的文件名。

that.data.scene.slice(22) 这里是把 data:image/png;base64, 这一段去除,需要注意的是去除这一段之后 base64 编码之间放到image组件的src里面是不能显示图片的。

wx.saveImageToPhotosAlbum 是保存图片到相册

writeFile 文档简要说明:
在这里插入图片描述