uniapp中根据图片路径(网络或本地路径)转换为base64

uniapp中根据图片路径(网络或本地路径)转换为base64

javascript 复制代码
/**
 * 图片地址转换为base64格式图片
 * @param {string} url 图片地址 可网络地址、本地相对路径
 * @param {string} type base64图片类型 默认png
 */
function urlToBase64(url, type = 'png') {
  let promises

  // 网络地址 或者h5端本地相对路径 可使用request方式
  promises = new Promise((resolve, reject) => {
    uni.request({
      url: url,
      method: 'GET',
      responseType: 'arraybuffer',
      success: (res) => {
        const base64 = `data:image/${type};base64,${uni.arrayBufferToBase64(res.data)}`
        resolve(base64);
      },
      fail: (err) => {
        reject(err);
      },
    })
  })

  // #ifdef APP
  if (!url.startsWith('http')) {
    // app真机本地相对路径
    promises = new Promise((resolve, reject) => {
      uni.compressImage({
        src: url,
        quality: 100, // 图片质量压缩0~100,100表示图片质量保持原样
        success: (res) => {
          const tempUrl = res.tempFilePath // 使用compressImage获取到安卓本地路径file:///...
          plus.io.resolveLocalFileSystemURL(tempUrl, (entry) => {
            entry.file((e) => {
              let fileReader = new plus.io.FileReader();
              fileReader.onload = (r) => {
                resolve(r.target.result)
              }
              fileReader.readAsDataURL(e)
            })
          })
        },
        fail: (err) => {
          reject(err);
        },
      })
    })
  }
  // #endif

  return promises
}
相关推荐
xshirleyl3 小时前
uniapp小兔鲜儿day3
uni-app
Geek_Vison21 小时前
2026 跨端框架横评:FinClip、Taro、uni-app、Remax、mPaaS 五款工具技术+业务双维度测评
小程序·uni-app·taro·mpaas·小程序容器
RuoyiOffice1 天前
从 0 到 1 搭建 RuoyiOffice:30 分钟跑通后端+前端+移动端
前端·spring boot·uni-app·开源·oa·ruoyioffice·hrm
Geek_Vison1 天前
APP集成了50多个小程序后,如何搭建一个小程序管理平台来管理这些小程序~
小程序·uni-app·apache·mpaas·小程序容器
梦曦i2 天前
uni-router v1.1.1发布:守卫超时保护+路由监听
前端·uni-app
梦曦i2 天前
全面解析uni-router v1.2.0功能
前端·uni-app
不如摸鱼去2 天前
Wot UI 2.1.0 发布:ConfigProvider 全局配置能力升级
ui·小程序·uni-app
PedroQue992 天前
uni-router:uni-app路由管理新选择
前端·uni-app
这是个栗子2 天前
微信小程序开发(九)- uni-app微信小程序商城
微信小程序·小程序·uni-app·vue·vuex
中犇科技2 天前
2026商城APP开发公司 TOP5(电商垂直版)
uni-app