小程序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格式图片 // 如果需要使用本地缓存图片,请参照第一步 } })