微信小程序 本地圖片和base64圖片相互轉(zhuǎn)換

wx.chooseImage === 從本地相冊選擇圖片或使用相機(jī)拍照
wx.getFileSystemManager() === 獲取全局唯一的文件管理器
wx.getFileSystemManager().readFile === 讀取本地文件內(nèi)容
wx.base64ToArrayBuffer() === 將 Base64 字符串轉(zhuǎn)成 ArrayBuffer 對象
wx.downloadFile === 下載文件資源到本地

從手機(jī)上選擇圖片轉(zhuǎn)base64
getToBase64(){
    wx.chooseImage({
      count:'1',   // 最多可以選擇的圖片張數(shù)
      sizeType: ['original', 'compressed'], // ['原圖','壓縮圖']
      sourceType: ['album', 'camera'],  // ['從相冊選圖','使用相機(jī)']
      success: res => {
      wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0], //選擇圖片返回的相對路徑
          encoding: 'base64', //編碼格式
          success: res => { //成功的回調(diào)
            console.log('data:image/png;base64,' + res.data)
          }
        })
      }
    })
  },
網(wǎng)絡(luò)圖片轉(zhuǎn)base64圖片
getToBase64Two(){
    var httpsimg = 'https://baidu.com/a.jpg'   // 網(wǎng)絡(luò)圖片地址
    wx.downloadFile({     // 需要先下載 
      url: httpsimg,
      success(res) {
        console.log(res,'res')
        wx.getFileSystemManager().readFile({
            filePath: res.tempFilePath, //選擇圖片返回的相對路徑
            encoding: 'base64', //編碼格式
            success: res => { //成功的回調(diào)
              let userImageBase64 = 'data:image/jpg;base64,' + res.data;
              console.log(userImageBase64); // 打印base64格式圖片
            }
        })
      }
    })
  },
base64圖片轉(zhuǎn)本地圖片
getToLocal(){
    var base64data = "";   // base64
    const fsm = wx.getFileSystemManager();
    const FILE_BASE_NAME = 'tmp_base64src'; //自定義文件名
    const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
    if (!format) {
      return (new Error('ERROR_BASE64SRC_PARSE'));
    }
    const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
    const buffer = wx.base64ToArrayBuffer(bodyData);
    fsm.writeFile({
      filePath,
      data: buffer,
      encoding: 'binary',
      success(r) {
        console.log(r,'r')
        console.log(filePath,'filePath')
      },
      fail() {
        return (new Error('ERROR_BASE64SRC_WRITE'));
      },
    });
  },
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容