2012-04-30 50 views
8

我想从一个流管道数据到一个子进程。管道流到graphicsmagick/imagemagick子进程

var gm = spawn('gm convert - -thumbnail 220x165^ -gravity center -extent 220x165 thumb.jpg'); 
var rs = fs.createReadStream('cow.jpg'); 

rs.pipe(gm.stdin) 

我需要打电话给gm才能使用它吗?另外在我的真实代码中,我从数据库中获取流。

回答

9

如何流的请求到ImageMagick的例子:

var image = request.get(req.params.url); 
var size = req.params.size.split('x'); 
var args = ['-', '-thumbnail', req.params.size + '^', '-gravity', 'center', '-extent', req.params.size, '-' ]; 
var convert = spawn('convert', args); 

image.pipe(convert.stdin); 
convert.stdout.pipe(res); 

大谈这样的:http://vimeo.com/43380478

和源代码:https://github.com/felixge/rebel-resize

+0

你知道,如果它有可能管多张图片进入子进程?我试图将多个图像流合成在一起,然后在合成后将它们进行管道输出。 – NateW