将图像缓冲区数据转换为图像并保存在本地驱动器node.js中

f2uvfpb9  于 2023-08-04  发布在  Node.js
关注(0)|答案(3)|浏览(89)

我在node.js中有一个非常复杂的程序,它读取图像,对图像进行一些修改,然后将其转换为缓冲数据。缓冲的图像数据如下所示。
<Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 04 38 00 00 04 38 08 06 00 00 00 ec 10var fs = require('fs ')
为了生成这个缓冲数据,我使用了:

fs.readFile('image.jpeg', function(err, data){
    if (err) throw err
    else console.log(data)
}) 6c 8f 00 00 20 00 49 44 41 54 78 5e ec 5d 77 9c 14 45 f6 ... 1001138 more 
    bytes>

字符串
有没有一种方法可以将其转换回图像并使用node.js将其保存在我的本地驱动器文件夹中。
任何帮助是赞赏!

svdrlsy4

svdrlsy41#

我把一个图像转换成一个缓冲区,然后使用WriteFileSync()函数,从fs模块,得到图像回来,并将其保存为jpeg,这对我来说非常好。
这个想法来自于这篇文章:https://medium.com/@divinehycenth8/convert-a-base64-data-into-an-image-in-node-js-d82136576e35
希望能帮上忙!

jslywgbw

jslywgbw2#

const image = imagePath/image/imageLocation;

const imageBufferString = image.buffer.toString("base64");

字符串

m0rkklqb

m0rkklqb3#

由于您有一个图像作为缓冲区,您可以像这样将缓冲区写入图像(只写入回调)

function callback(err, data) {
 let filename = "test.jpg";
 fs.writeFile(filename, data, "binary", (err) => {
     if (!err) console.log(`${filename} created successfully!`);
   }
}

字符串

相关问题