在nodejs中将图像的BLOB转换为图像文件

eyh26e7m  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(201)

我正在研究一个API,它从服务器获取图像,并将图像作为blob提供,现在我想将该blob转换为图像文件并在本地保存
我曾试图将图像转换为base64,然后将其转换为图像,也尝试了一些stackoverflow修复,但没有一个工作
这里是代码

async function query(data) {
  var url;
  url = "https://api-inference.huggingface.co/models/prompthero/openjourney";

  try {
    const response = await request(
      {
        method: 'POST',
        uri: url,
        headers: {
          'Authorization': 'AUTHTOKEN-HERE!!!',
        },
        body: JSON.stringify(data),
      }
    );
    const result = await response.blob();
    console.log(result)
    return result;
  }
  catch (err) {
    console.log("error occured");
    console.log(err)
  }

}

字符串

mzillmmw

mzillmmw1#

下面是我们如何下载图像文件。

import fs from 'fs';

async function query(data) {
  var url;
  url = "https://api-inference.huggingface.co/models/prompthero/openjourney";

  const response = await fetch(
        url,
        {
            headers: { Authorization: "TOKEN HERE !!!" },
            method: "POST",
            body: JSON.stringify(data),
        }
    );
    const result = await response.blob();
    return result;
}

query({"inputs": "Astronaut riding a horse"}).then(async (response) => {
  fs.writeFileSync('downloaded_image.jpg', Buffer.from(await response.arrayBuffer()));
  console.log('Image downloaded successfully.');
});

字符串
您可以添加错误处理逻辑,但上面的逻辑将下载图像。

相关问题