0

複数の画像を、応答としてパイプされる単一のストリームに合成しようとしています。https://github.com/aheckmann/gmでNode.jsとNode用GraphicsMagickを使用しています。

2 つの画像をストリームに合成している場合、正常に動作します。この例では、最終的な合成の 2/3 が期待どおりに表示されます。これが私のコードです:

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);
})

これはPostmanでうまく機能します すてきな一日を

しかし、3 つの画像を合成しようとすると、画像の下部が意図したとおりに正しく塗りつぶされません。コードは次のとおりです。

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);
})

出力がこれである理由がわかりません: もう最高の日を過ごしていない

4

1 に答える 1

0

https://stackoverflow.com/a/20611669/4447761 Ryan Wu に声をかけてください。

これが私の最終的なコードです

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);
})

動作します!

于 2015-09-26T06:02:07.770 に答える