我可以在NodeJs中使用Sharp直接处理缓冲区数据吗
Can I directly process buffer data using Sharp in NodeJs
我从外部获取缓冲区数据到我的程序,我想处理缓冲区数据并将其也作为缓冲区发送。
所以我不想将缓冲区转换为图像。
我该怎么做?
我试过这种方法,但是不行。
const process = await sharp(incoming_buffer_data).grayscale();
fs.writeFileSync('test.jpg', process);
// 我正在使用它进行测试。总是我得到 worng 图像格式作为错误
假设 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');
工作片段。
sharp(buffer)
.greyscale()
.toFile('file.png', (err, info) => {
// file is stored as file.png in current directory
})
你甚至可以做其他事情,比如调整大小
sharp(buffer)
.greyscale()
.resize(512,512,{fit:'contain'})
.toFile('file.png', (err, info) => {
// file is stored as file.png in current directory
})
我从外部获取缓冲区数据到我的程序,我想处理缓冲区数据并将其也作为缓冲区发送。 所以我不想将缓冲区转换为图像。 我该怎么做?
我试过这种方法,但是不行。
const process = await sharp(incoming_buffer_data).grayscale();
fs.writeFileSync('test.jpg', process);
// 我正在使用它进行测试。总是我得到 worng 图像格式作为错误
假设 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');
工作片段。
sharp(buffer)
.greyscale()
.toFile('file.png', (err, info) => {
// file is stored as file.png in current directory
})
你甚至可以做其他事情,比如调整大小
sharp(buffer)
.greyscale()
.resize(512,512,{fit:'contain'})
.toFile('file.png', (err, info) => {
// file is stored as file.png in current directory
})