SO上有很多关于如何将图像作为数据URL的问题和答案,而且,很多人都使用canvas API或FileReader API。使用这些API完成如此简单的任务有点繁重,因此我决定发表QnA帖子,介绍如何以更简单的方式完成它。
这是一个简单的函数,它从提供的URL中获取图像,然后将其作为数据URL输出。
async function asDataUrl(src) {
const req = await fetch(src);
const res = await req.arrayBuffer();
const u8Buf = new Uint8Array(res);
let latinBuf: string = '';
u8Buf.forEach((byte: number): void =>
{ latinBuf += String.fromCharCode(byte); });
return `data:${req.headers['content-type']};base64,${btoa(latinBuf)}`;
}