2012-04-30 75 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