如何在不从 NodeJS 中的 url 下载图像的情况下显示图像?

How can I display an Image without downloading it from a url in NodeJS?

在 NodeJS 中,我使用了名为 node-fetch 的包,也用于获取 JSON 响应,但是图像响应如何?我怎样才能做到这一点?在我当前的代码中,它只保存未显示的图像,如来自 python.

的 PIL
var tr = "https://i.picsum.photos/id/866/200/300.jpg?hmac=rcadCENKh4rD6MAp6V_ma-AyWv641M4iiOpe1RyFHeI"

export async function get_image() {
    const get_url = await fetch(tr)
    const image = get_url.body.pipe(fs.createWriteStream('./image.png'))
}

await get_image();

您可以使用 axios 模块获取 Base64 格式的图像并将其保存在变量中,如下所示:

const axios = require('axios')
const imageURL = 'https://i.picsum.photos/id/866/200/300.jpg?hmac=rcadCENKh4rD6MAp6V_ma-AyWv641M4iiOpe1RyFHeI';

(async ()=>{
    // Get image Buffer from url and convert to Base64
    const image = await axios.get(imageURL, {responseType: 'arraybuffer'});
    const base64Image = Buffer.from(image.data).toString('base64');

    // Do stuff with result...
    console.log(base64Image);
})();

// Or if you prefer, a one liner
(async ()=>{
    const base64Image = Buffer.from((await axios.get(imageURL, {responseType: 'arraybuffer'})).data).toString('base64');
})();

您可以通过网站 decode the base64 string into an image.

检查它是否有效