使用 axios 下载图片,然后转成 base64 格式
import axios from 'axios'
async function getImageBase64FromUrl(url : string) : Promise<string> {
const res = await axios({
method: 'GET',
url: url,
responseType: 'arraybuffer', // 注意这里的返回值类型为:arraybuffer
})
return new Promise((resolve) => {
// Buffer 只能在 nodejs 端使用。
const imgBase64 = Buffer.from(res.data, 'binary').toString('base64')
const imageUrl = `data:image/png;base64,${imgBase64}`
resolve(imageUrl )
})
}
浏览器端可以使用: FileReader
/*
* 浏览器端可以使用: FileReader
**/
axios
.get(imageUrl, { responseType:"blob" })
.then(function (response) {
var reader = new window.FileReader();
reader.readAsDataURL(response.data);
reader.onload = function() {
var imageDataUrl = reader.result;
imageElement.setAttribute("src", imageDataUrl);
}
});
// ----------
var reader = new FileReader()
reader.onloadend = function () {
resolve(reader.result)
}
reader.readAsDataURL(xmlHttpReq.response as Blob)