我可以在NodeJ中使用Sharp来直接处理缓冲区数据吗

发布时间:2020-07-07 15:21

我从外部获取缓冲区数据到我的程序,并且我想处理缓冲区数据并将其作为缓冲区发送。 所以我不想将缓冲区转换为图像。 我该怎么办?

我尝试这种方式,但是没有用。

const process = await sharp(incoming_buffer_data).grayscale();

fs.writeFileSync('test.jpg', process); //我正在使用它进行测试。一直以来,我都无法获取图像格式

回答1

假设incoming_buffer_data确实是缓冲区并且具有受支持的图像格式。

您可以将输出作为缓冲区,然后像尝试做的那样将其发送到fs.writeFileSync()

const buffer = await sharp(incoming_buffer_data).grayscale().toBuffer();
fs.writeFileSync('test.jpg', buffer);

或者您可以直接将其写入文件

await sharp(incoming_buffer_data).grayscale().toFile('test.jpg');