uniapp 图片转base64格式
(2)base64src.js 是base64转图片。(1)base64.js 是图片转base64。
·
1、创建文件夹
(1)base64.js 是图片转base64
/**
* @description 本地图片转base64方法(兼容APP、H5、小程序)
* @param {number} path 图片本地路径
* @returns Promise对象
*/
const toBase64 = (path) => {
return new Promise((resolve, reject) => {
// #ifdef APP-PLUS
plus.io.resolveLocalFileSystemURL(path, (entry) => {
entry.file((file) => {
let fileReader = new plus.io.FileReader()
fileReader.readAsDataURL(file)
fileReader.onloadend = (evt) => {
let base64 = evt.target.result.split(",")[1]
resolve(base64)
}
})
})
// #endif
// #ifdef H5
uni.request({
url: path,
responseType: 'arraybuffer',
success: (res) => {
resolve(uni.arrayBufferToBase64(res.data))
}
})
// #endif
// #ifdef MP-WEIXIN
uni.getFileSystemManager().readFile({
filePath: path,
encoding: 'base64',
success: (res) => {
resolve(res.data)
}
})
// #endif
})
}
export {
toBase64
}
(2)base64src.js 是base64转图片
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'));
},
});
};
module.exports = base64src;
2、需要使用的文件引入
引入base64.js
引入base64src.js
var base64src = require('./common/base64src')
3、方法中使用
base64.js
// 下面将图片本地路径转base64
convert.toBase64(res.tempFilePaths[index]).then((res) => {
that.getAccessToken(res)
})
base64src.js
var shareQrImg = `data:image/png;base64,` + path;
base64src(shareQrImg, resCurrent => {
console.log(resCurrent) // 返回图片地址,直接赋值到image标签即可
this.imgUrl = resCurrent
})
更多推荐
已为社区贡献5条内容
所有评论(0)