小程序base64转为本地图片

  • 2020 年 3 月 11 日
  • 筆記

第一步: 新建一个js文件,位置自己决定

const fsm = wx.getFileSystemManager()  const FILE_BASE_NAME = 'tmp_base64src'    function base64src (base64data, cb) {    const [, format, bodyData] = /data:image/(w+);base64,(.*)/.exec(base64data) || []    if (!format) {      return (new Error('ERROR_BASE64SRC_PARSE'))    }    const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`    const buffer = wx.base64ToArrayBuffer(bodyData)    fsm.writeFile({      filePath,      data: buffer,      encoding: 'binary',      success () {        cb(filePath)      },      fail () {        return (new Error('ERROR_BASE64SRC_WRITE'))      }    })  }  export { base64src }

第二步: 在需要使用的文件中引入并使用

import { base64src } from '../../utils/base64src.js'  Page({    data: {      shareQrImg: "data:image/jpeg;base64,/9j/4AAQSkZJRgA........GASDFKGKF=" //base64图片    },    onLoad: function (options) {      base64src(this.data.shareQrImg, res => {        console.log(res) // 返回图片地址,直接赋值到image标签即可      });    },  })

如果需要网络图片转换成base64格式

wx.request({    url: "https://s0.2mdn.net/simgad/10657937226496242109",    method: 'GET',    responseType: 'arraybuffer',    success: (res) => {      let base64 = wx.arrayBufferToBase64(res.data);      let userImageBase64 = 'data:image/jpg;base64,' + base64;      console.log(userImageBase64); // 打印base64格式图片      // 如果需要使用本地缓存图片,请参照第一步    }  })