第一步: 新建一个js文件,位置自己决定
代码语言:javascript复制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 }
第二步: 在需要使用的文件中引入并使用
代码语言:javascript复制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格式
代码语言:javascript复制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格式图片
// 如果需要使用本地缓存图片,请参照第一步
}
})