Javascript Node.js通过Filestream将图片流到gm
我有一个节点服务器,将流png文件。这些图像是加密的。 使用createReadStream,我能够解密文件。然后我会用graphicsmagick调整gm图片的大小,但我不知道如何流式传输到gm,然后再返回到客户端 我在web中找到的所有示例都使用带有文件输入的gm,我需要一个流 先谢谢你Javascript Node.js通过Filestream将图片流到gm,javascript,node.js,Javascript,Node.js,我有一个节点服务器,将流png文件。这些图像是加密的。 使用createReadStream,我能够解密文件。然后我会用graphicsmagick调整gm图片的大小,但我不知道如何流式传输到gm,然后再返回到客户端 我在web中找到的所有示例都使用带有文件输入的gm,我需要一个流 先谢谢你 var gm = require("gm"); var rstream = fs.createReadStream(lPathPicture); pRes.writeHead(200, {"Conten
var gm = require("gm");
var rstream = fs.createReadStream(lPathPicture);
pRes.writeHead(200, {"Content-Type": "image/png"});
rstream
.pipe(aes) // decrypt file
**.pipe(....) // How to call gm with stream ?**
.pipe(pRes)
.on('finish', function () { // finished
pRes.end();
return;
})
.on('error', function (err) { // error
.....
});
以下是我的解决方案:
var SpawnStream = require('spawn-stream'); // https://www.npmjs.org/package/spawn-stream
var gm = require("gm");
.
.
var rstream = fs.createReadStream(lPathPicture);
var lOptions = {};
var args = ["arg1", "arg2"];
var processPic = SpawnStream('gm', args, lOptions);
pRes.writeHead(200, {"Content-Type": "image/png"});
rstream
.pipe(aes)
.pipe(processPic)
.pipe(wstream)
.on('finish', function () {
pRes.end();
return;
})
.on('error', function (err) { // error
...
});
我将尝试与通用汽车graphicsmagick。类似于:var execStream=require'exec_stream';var convert=execStream'gm',['theoptions'];rstream.pipeaes.pipeconvert.piperes;