根据这种base64转本地图片的方法在真机上,canvas画布中不显示这个二维码的图片,是什么原因?
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图片可以只直接放到image里面,可以直接显示