小程序选择图片直接转base64点一个方法。
-
新的微信里出现了
【FileSystemManager.readFile(Object object)】方法可以直接指定读取文件的编码格式。
那么filePath使用chooseImage 获得的文件零时路径 不就可以获得 base64 的图片文件了么?
试了一下 以下代码可行
insertImage(event) { console.log('InsertImg', event); Taro.chooseImage({ count: 1, sizeType: [ 'original', 'compressed' ], sourceType: [ 'album', 'camera' ] }) .then(async (res) => { let file = await fileToBase64(res.tempFilePaths[0]); console.log(file); if (file) { this.EditorContext.insertImage({ src: `data:image.jpeg;base64,${file}` }); } }) .catch((err) => { console.error(err); }); // this.EditorContext.insertImage(); } export const fileToBase64 = (filePath) => { return new Promise((resolve, reject) => { let fileManager = Taro.getFileSystemManager(); fileManager.readFile({ filePath, encoding: 'base64', success: (e: any) => { resolve(e.data); } }); }); };