在 Angular 中将图像 url 转换为 base64

Ser*_*ano 6 javascript single-page-application typescript angular angular8

我正在努力尝试将给定的图像 url 转换为 base64 ......在我的情况下,我有一个带有图像路径的字符串

var imgUrl = `../../../../../assets/logoEmpresas/${empresa.logoUrl}`
Run Code Online (Sandbox Code Playgroud)

我怎样才能直接在 base64 中转换给定的图像 url?...我试过这篇文章。

以角度 2 将图像转换为 base64

但是这篇文章是从表单中获取图像...我该如何调整它?

Ton*_*Ngo 11

您可以使用它来获取 base64 图像

async function getBase64ImageFromUrl(imageUrl) {
  var res = await fetch(imageUrl);
  var blob = await res.blob();

  return new Promise((resolve, reject) => {
    var reader  = new FileReader();
    reader.addEventListener("load", function () {
        resolve(reader.result);
    }, false);

    reader.onerror = () => {
      return reject(this);
    };
    reader.readAsDataURL(blob);
  })
}
Run Code Online (Sandbox Code Playgroud)

然后这样调用

getBase64ImageFromUrl('your url')
    .then(result => testImage.src = result)
    .catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)