2012-04-30 5 views
8

Я пытаюсь передать данные из потока в дочерний процесс.Поток трубы в childmagick/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