赞
踩
1、在utils文件下新建一个auth.js文件(随便取一个名字,你开心就行),在里面添加以下代码
- /**
- * 图片转base64
- * @returns {Promise<any>} 返回一个 promise 对象,resolve 结果或 reject 错误
- */
- function downloadAndConvert(filePath) {
- return new Promise((resolve, reject) => {
- if (filePath.indexOf('wxfile') ===0 || filePath.indexOf('http://tmp/') ===0) {
- wx.getFileSystemManager().readFile({
- filePath: filePath,
- encoding: 'base64',
- success: res => {
- wx.getImageInfo({
- src: filePath,
- success: (infoRes) => {
- resolve(`data:image/${infoRes.type};base64,${res.data}`)
- },
- fail: (err) => {
- reject('Error getting image info')
- }
- })
- },
- fail: err => {
- reject('Error reading file')
- }
- })
- } else {
- wx.downloadFile({
- url: filePath,
- success: res => {
- wx.getFileSystemManager().readFile({
- filePath: res.tempFilePath,
- encoding: 'base64',
- success: res => {
- wx.getImageInfo({
- src: filePath,
- success: (infoRes) => {
- resolve(`data:image/${infoRes.type};base64,${res.data}`)
- },
- fail: (err) => {
- reject('Error getting image info')
- }
- })
- },
- fail: err => {
- console.log('网络',err)
- }
- })
- },
- fail: err => {
- console.log('下载网络失败',err)
- }
- })
- }
- })
- }
-
-
- module.exports={
- downloadAndConvert
- }
如果是网络图片需要先使用wx.downloadFile({...})下载之后才可进行转换,本地的则直接转换即可你可根据具体需求修改代码,不要受此处代码影响。
2、在你需要使用的地方引入
- const auth = require('../../utils/auth');
- Page({
- data: {
-
- },
- onLoad() {
- let base64 = auth.downloadAndConvert('../../images/logo.png')
- console.log(base64 )
- }
- })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。