一、使用小程序自带的网络请求

1、wx.request() 这种方式适合网络https路径图片,但无法解析wxfile://xxxx导致转化报错

image2Base64(imgUrl) {return new Promise((resolve, reject) => { // promise 解决异步问题wx.request({url: imgUrl,responseType: 'arraybuffer', //最关键的参数,设置返回的数据格式为arraybuffersuccess: (res) => {var base64 = wx.arrayBufferToBase64(res.data);base64 = 'data:image/jpeg;base64,' + base64;resolve(base64);},fail: (res) => {reject(false);}})})}

2、wx.getFileSystemManager().readFile() 本地照片或拍照这种可以转化解析wxfile://xxxx

wx.chooseImage({count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success(res) {wx.getFileSystemManager().readFile({filePath: res.tempFilePaths[0], //要读取的文件的路径 (本地路径)encoding: "base64", //指定读取文件的字符编码,如果不传 encoding,则以 ArrayBuffer 格式读取文件的二进制内容success(res) {//转换完毕,执行上传_this.setData({avatar: 'data:image/png;base64,' + res.data})}})}})

二、使用canvas 获取图片base64

<canvas id="myCanvas" type="2d" hidden="true"></canvas>
//使用canvas 获取图片base64async getImageBase64_canvas(tempFilePath) {const {width,height} = await wx.getImageInfo({src: tempFilePath});const base64 = await new Promise(resolve => {const query = wx.createSelectorQuery();query.select("#myCanvas").fields({node: true, // 获取 node}).exec(res => {let {node: canvas} = res[0];let ctx = canvas.getContext('2d');let image = canvas.createImage();console.log(image);image.src = tempFilePath;image.onload = () => {ctx.drawImage(image, 0, 0, width, height);resolve(canvas.toDataURL())}});});this.setData({base64})},

三、获取全局唯一的文件管理器 读取本地文件内容

async getImageBase64_readFile(tempFilePath) {const base64 = await new Promise(resolve => {//获取全局唯一的文件管理器 wx.getFileSystemManager().readFile({ //读取本地文件内容filePath: tempFilePath, // 文件路径encoding: 'base64', // 返回格式success: ({data}) => {return resolve('data:image/png;base64,' + data);}});});this.setData({base64})
},

小程序图片转换Base64格式的三种方法相关推荐

  1. 怎么转换CAD图纸格式?三种方法帮你搞定CAD转PDF格式操作!

    对于许多小伙伴们而言,对于CAD的了解在不断的加深,而我们的制图水平随着不断的时间的累积也越来越厉害,CAD转PDF格式这种简单的图纸格式转阿虎操作自然不在话下,但是对于许多刚刚开始接触CAD的小伙伴 ...

  2. 小程序图片转Base64,方法总结。

    小程序图片转base64 前言:看了很多博客没一个能解决问题的,小程序社区也逛了个遍,依然找不到小程序图片在本地转base64的方法,凡事还得靠自己啊,接下来就把所有方法做个总结,作为一个野生程序员, ...

  3. javascript中将字符串转换为json格式的三种方法

    摘自:http://www.phpzixue.cn/detail1128.shtml javascript中将字符串转换为json格式的三种方法:  json在我们js的开发过程中经常会用到像在使用a ...

  4. Java程序初始化启动自动执行的三种方法

    目录 @PostConstruct注解 CommandLineRunner接口 ApplicationRunner 接口 @Order注解设置启动顺序 分享一下自己用过的java程序初始化启动自动执行 ...

  5. 小程序页面之间数据传递的五种方法

    小程序页面之间数据传递的五种方法 目录 小程序页面之间数据传递的五种方法 **使用 `wx.navigateTo()` 时,在 url 中拼接,这种方法适用于数据量少的情况** **使用 `wx.na ...

  6. 如何将图片转换base64格式?data:image/png;base64又是什么?

    一.我们在看代码时经常在img或css背景图片中看到:  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAA ...

  7. badatatable转成json_C# DataTable 转换成JSON数据 三种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...

  8. 开机提示小娜无法在本计算机运行,解决Win10正式版开始菜单与小娜打不开问题的三种方法...

    最近,有一些win10正式版用户反映自己的开始菜单和小娜突然打不开了,这该怎么办呢?接下来,小编就向大家分享三种临时解决Win10正式版开始菜单与小娜打不开问题的方法. 温馨提示: 本文的三种方法目前 ...

  9. 将ppt转换成pdf的三种方法分享

    在我们工作中,总免不了将一些ppt幻灯片里的内容复制到pdf文档中,一些同仁遇到这种现象常常不知道如何下手,有的甚至直接将ppt文本内容复制到word文档中,然后保存成pdf格式,这样打开肯定会导致排 ...

最新文章

  1. json中{}和[]的区别
  2. mysql为什么用索引_MySql为什么使用B+树做索引
  3. 【人物】雷军去了联想,干货分享全场哑口无言,除了掌声...
  4. python元类的简单了解
  5. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较
  6. FineUI(专业版)v3.1发布(ASP.NET控件库)!
  7. dnn305的一个bug
  8. ubuntu wine 使用
  9. 无人机-4无人机结构设计
  10. 搜狗新闻文本分类竞赛
  11. cc2530dma控制器功能_dma控制器是什么_dma控制器工作方式
  12. Dubbo-接口数据序列化Serialization
  13. C语言函数之可变参数原理:va_start、va_arg及va_end
  14. 网站架构资料收集整理
  15. 增加bt下载tracker的网站
  16. MySQL创建无符号整数(int)及取值范围
  17. 莫烦python教程下载_Python 有哪些好的学习资料或者博客?
  18. 小程序 动态实现进度条
  19. 单例模式多线程环境实现之几句呢喃
  20. C#中 is和as 的区别

热门文章

  1. 两个年月日怎么相减_用EXCEL表格怎么进行年月日的加减??
  2. 【Python】一文弄懂python装饰器(附源码例子)
  3. Jsoncpp新手入门:集成与源码编译
  4. html表格数据按自定义公式自动计算,WPS表格如何设置自动计算公式
  5. CleanMyMac4.11.3macOS系统垃圾清理应用
  6. python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕
  7. moto+早期android手机,中坚力量:摩托罗拉XT701
  8. 浮动按钮、扇形按钮、EasyThouch
  9. DATAGRIP中文插件及白色界面
  10. [CSP]201803-4 棋局评估 min-max搜索