javascript - 如何将图像转换为base64?

标签 javascript base64url

我看过很多关于将图像转换为base64的教程。我所做的工作就是基于此。我创建了一个函数,将在其中进行此转换。但我需要传递像下面的函数一样的图像并获取像下面这样的console.log。

我不知道该怎么做?

  getPDF() {
    let image = "assets/icon/logo.png";
    let imageData = this.getBase64Image(image);
    console.log("imageData", imageData);
  }

  getBase64Image(img) {
    let xhr = new XMLHttpRequest();
    xhr.open("GET", img, true);
    xhr.responseType = "blob";
    xhr.onload = function (e) {
      console.log(this.response);
      var reader = new FileReader();
      reader.onload = function (event) {
        var res = event.target["result"];
      }
      var file = this.response;
      reader.readAsDataURL(file)
    };
    xhr.send();
  }

最佳答案

要在 getPDF 函数中接收 base64 值,您可以使用 Promise。

getPDF() {
    let image = "assets/icon/logo.png";
    this.getBase64Image(image).then(imageData => {
       console.log("imageData", imageData);
    }).catch(err => {
        console.log(err);
    });

}

getBase64Image(img) {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest();
        xhr.open("GET", img, true);
        xhr.responseType = "blob";
        xhr.onload = function (e) {
          console.log(this.response);
          var reader = new FileReader();
          reader.onload = function (event) {
            resolve(event.target["result"]);
          }
          reader.onerror = function(e) {
             reject(e);
          };
          var file = this.response;
          reader.readAsDataURL(file)
        };
        xhr.onerror = function (e) {
            reject(e);
        }
        xhr.send();
    });    
}

关于javascript - 如何将图像转换为base64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195800/

相关文章:

node.js - baseurl64 缓冲区解码

javascript - 全宽图像 slider

javascript - json_encode 在我的外部 javascript 中没有显示任何内容

javascript - 使用 jQuery 选择生成的 id

javascript - 从 Bootstrap typeahead 和 JSON 制作可点击的结果列表

javascript - 不使用 Webpack/Node 时如何使用 Reactjs Datepicker?

url - 基于字符串的数据编码:Base64 vs Base64url