2015-09-26 2 views
0

Я пытаюсь собрать несколько изображений в один поток, который будет передаваться в виде ответа. Я использую Node.js и GraphicsMagick для узла по адресу https://github.com/aheckmann/gm.Как скомпоновать несколько изображений в одном потоке

Если я совмещаю два изображения в потоке, он отлично работает, и для этого примера он показывает две трети финального композита, как и ожидалось. Вот мой код:

app.get('/call_2image_stream', function(req, res){ 

    res.writeHead(200, {'Content-Type' : 'image/png'}); 
    var path = (__dirname + '/test_folder/happy_right.png'); 
    var path2 = (__dirname + '/test_folder/happy_left.png'); 
    gm(path) 
     .composite(path2) 
     .stream('png') 
     .pipe(res); 
}) 

Это прекрасно работает в Почтальон Have a great day

Но когда я пытаюсь и композитные три изображения не заполняет в нижней части изображения правильно, как предполагалось. Код заключается в следующем:

app.get('/call_3image_stream', function(req, res){ 

    res.writeHead(200, {'Content-Type' : 'image/png'}); 
    var path = (__dirname + '/test_folder/happy_bottom.png'); 
    var path2 = (__dirname + '/test_folder/happy_right.png'); 
    var path3 = (__dirname + '/test_folder/happy_left.png'); 
    gm(path) 
     .composite(path2) 
     .composite(path3) 
     .stream('png') 
     .pipe(res); 
}) 

Я не могу понять, почему выход таков: not having the best day anymore

ответ

0

Разобрался большой ответ написать здесь: https://stackoverflow.com/a/20611669/4447761 крикнуть Райан Ву!

Вот мой окончательный код

app.get('/final_code', function(req, res){ 
    res.writeHead(200, {'Content-Type' : 'image/png'}); 
    gm() 
    .in('-page', '+0+0') 
    .in(__dirname + '/test_folder/happy_right.png') 
    .in('-page', '+0+0') 
    .in(__dirname + '/test_folder/happy_left.png') 
    .in('-page', '+0+0') 
    .in(__dirname + '/test_folder/happy_bottom.png') 
    .mosaic() 
    .stream('png') 
    .pipe(res); 
}) 

works!

Смежные вопросы