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

Sha*_*han 2 image-processing node.js sharp

我从外部获取缓冲区数据到我的程序,我想处理缓冲区数据并将其作为缓冲区发送。所以我不想将缓冲区转换为图像。我怎样才能做到这一点?

我尝试这种方式,但它不起作用。

const process = await sharp(incoming_buffer_data).grayscale();
Run Code Online (Sandbox Code Playgroud)

fs.writeFileSync('test.jpg', process);// 我正在使用它进行测试。总是我得到一个错误的图像格式

tha*_*.ts 6

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

您可以将输出作为缓冲区获取,然后将其发送到fs.writeFileSync()您尝试执行的操作

const buffer = await sharp(incoming_buffer_data).grayscale().toBuffer();
fs.writeFileSync('test.jpg', buffer);
Run Code Online (Sandbox Code Playgroud)

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

await sharp(incoming_buffer_data).grayscale().toFile('test.jpg');
Run Code Online (Sandbox Code Playgroud)