Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用sharp.js将图像从缓冲区存储到node.js中的文件系统_Javascript_Node.js_Sharp - Fatal编程技术网

Javascript 如何使用sharp.js将图像从缓冲区存储到node.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); }); });

我在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()

  • 以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太动态了