微信小程序图片流&本地图片转base64处理方案

本文介绍了微信小程序中如何将图片流转为base64格式进行展示。通过wx.chooseImage获取本地图片,利用wx.getFileSystemManager读取文件并转化为base64。同时,文章还提及了读者可能感兴趣的面试技巧、小程序开发经验及本地服务搭建。

172

图片流转base64展示

const that = this;
request({
   url: 'XXXXX',
   method: 'GET',
   responseType: 'arraybuffer',
   success: function(res) {
     const base64 = wx.arrayBufferToBase64(res);
     that.setData({
       userImageBase64: `data:image/jpg;base64,${base64}`
     });
   }
}); 

wxml展示图片

<image src='{{userImageBase64}}' style='width: 100rpx; height: 100rpx;' />

本地图片转base64

wx.chooseImage({
  success (res) {
    // tempFilePath可以作为img标签的src属性显示图片
    const tempFilePaths = res.tempFilePaths;
    const fileManager = wx.getFileSystemManager();
    const base64 = fileManager.readFileSync(tempFilePaths[0], 'base64');
    console.log('=============================', base64);
  },
  fail () {
    wx.showToast({
      title: '获取图片失败',
      icon: 'success',
      duration: 2000
    })
  }
})
  • wx.chooseImage:获取本地图片
  • wx.getFileSystemManager:创建文件管理类
  • readFileSync:读取本地文件,直接得到base64

大家在看

关注公众号: 页面仔小杨 【实战干货、原创分享】

bottom

### 微信小程序实现图片换为Base64编码的方法 在微信小程序中,为了减少服务器访问次数以及优化存储空间,通常会采用将图片化为Base64编码的方式处理图像数据。对于单张图片的选择与化操作,可以通过`wx.chooseImage()`函数选取本地相册或拍照得到的照片,并利用`getFileSystemManager().readFile()`读取文件内容作为Base64字符串。 #### 使用同步方式图片Base64编码 定义了一个名为`imgToBase64`的异步函数用于接收文件路径参数并返回带有&quot;data:image/png;base64,&quot;前缀的Base64编码串[^3]: ```javascript function imgToBase64(filePath) { return new Promise((resolve, reject) =&gt; { try { let baseFormat = &#39;data:image/png;base64,&#39;; let base64 = wx.getFileSystemManager().readFileSync(filePath, &#39;base64&#39;); resolve(baseFormat + base64); } catch (err) { reject(err); } }); } ``` #### 处理网络图片Base64编码 针对来自互联网资源链接的情况,则需先调用`wx.downloadFile()`下载远程图片保存至临时位置后再执行上述相同逻辑完成换过程[^4]: ```javascript function getToBase64Two(url){ wx.downloadFile({ url, success(res) { wx.getFileSystemManager().readFile({ filePath: res.tempFilePath, encoding: &#39;base64&#39;, success(readRes) { let userImageBase64 = `data:image/jpeg;base64,${readRes.data}`; console.log(userImageBase64); }, fail(error){console.error(&#39;Failed to read file:&#39;, error);} }) }, fail(error){console.error(&#39;Download failed:&#39;, error);} }); } ``` 以上两种方案均能有效解决不同场景下的需求,无论是本地还是在线获取的图片都可以顺利变为便于传输和展示的数据形式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值