繁体   English   中英

如何使用sharp.js将图像从缓冲区存储到node.js中的文件系统

[英]how to store image from buffer to file system in node.js using sharp.js

我在 node.js 中使用sharp.js 进行图像处理

我的代码

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; ( http://localhost:2000/images/we.png )

  1. 将图像上传为 png 格式或任何其他格式

  2. 使用.toFormat('jpeg')将该图像转换为JPEG并发送到缓冲区

  3. 想要将该图像从缓冲区保存到

您的代码没有“缓冲区”。 你应该写数据。

.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);
            }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM