如何在Node.js中使用Jimp库直接发送操纵图像作为响应而不将其保存到磁盘?

问题描述

我已经用Jimp库在nodejs中编写了这段代码

module.exports.imageProccessingJimp = function(req,res) {
    const fs = require('fs');
    var pathOriginal = 'images/pic_original.jpg';
    var pathManipulated = 'images/pic_manipulated.jpg'
    var Jimp = require('jimp');
    Jimp.read(pathOriginal)
    .then(lenna => {
        return lenna
            .resize(256,256) // resize
            .quality(80) // set JPEG quality
            .greyscale() // set greyscale
            .write(pathManipulated,() => {
                const files = fs.createReadStream(pathManipulated);
                res.writeHead(200,{'content-disposition':'attachment;filename:' & pathManipulated});
                files.pipe(res);
            }); // save
    })
    .catch(err => {
        console.error(err);
    });
};

它使用Jimp库处理图像,然后将处理后的图像保存到磁盘,最后从磁盘读取它并作为响应返回。

我打算防止将经过处理的图像保存到磁盘上并直接将其作为响应发送。

你有什么主意吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)