Javascript 如何使用sharp.js将图像从缓冲区存储到node.js中的文件系统
我在node.js中使用sharp.js进行图像处理 我的代码Javascript 如何使用sharp.js将图像从缓冲区存储到node.js中的文件系统,javascript,node.js,sharp,Javascript,Node.js,Sharp,我在node.js中使用sharp.js进行图像处理 我的代码 sharp(path) .toFormat('jpeg') .toBuffer((err, data, info) => { fs.writeFile(temp, buffer, { flag: 'w' }, function() { response.sendFile(temp); }); });
sharp(path)
.toFormat('jpeg')
.toBuffer((err, data, info) => {
fs.writeFile(temp, buffer, { flag: 'w' }, function() {
response.sendFile(temp);
});
});
这里,fs中的temp表示“路径”var temp=imageDir+request.params.id代码>()
以png格式或任何其他格式上载图像
使用.toFormat('JPEG')
将该图像转换为JPEG
,并发送到
缓冲区
要将该图像从缓冲区保存到
您的代码没有“缓冲区”。你应该在写数据
.toBuffer((err, data, info) => {
fs.writeFile(temp, data, { flag: 'w' }, function() {
response.sendFile(temp);
});
});
但最好使用toFile而不是toBuffer:
sharp('originalFile.jpg').
resize(330,null).
flatten().
toFile('newFile.jpg', function(err){
if(err){
response.sendStatus(500);
return;
}
response.sendFile('newFile.jpg');
});
你可以这样做
sharp(req.files[0].path).resize(400, 200).toFile('uploads/' + 'thumbnail-' + req.files[0].originalname, (err, sharp) => {
if (err) {
console.error(err);
}
else {
console.log(sharp);
}
});
这个问题完整吗?看起来好像少了一些things@Geuis尝试过,但格式正在更改。您需要提供示例代码来演示您的问题。@RobertMennell是的robert问题是完整的。我转换了文件,但无法保存它们。您能建议一种方法吗?谢谢,但是。,如果我上传一个jpg并转换成png呢。。文件格式是我们想要的,然后操纵newFile.jpg以获得正确的扩展名。如果变量temp
的扩展名中已经反映了所需的文件类型,那么就使用它。否则修复它。好的,如果我想处理一个扩展名为.webp到tiff的图像。好的,文件名不应该更改原始名称的as。如果我可以做什么?文件名是动态的,那么根据查询参数,toFile太动态了