我看过很多关于将图像转换为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/