wmakeev
9/1/2016 - 6:14 PM

Imagemagick pipes #imagemagick

Imagemagick pipes #imagemagick

var fs = require('fs')
var spawn = require('child_process').spawn
var request = require('request')

var photoStream1 = request('http://www.imagemagick.org/image/wizard.jpg')
var outFileStream = fs.createWriteStream(__dirname + '/temp-convert.jpg')

var convert = spawn('convert', ['-', '-append', '-'], { 
  stdio: ['pipe', 'pipe', 2] 
})

photoStream1.pipe(convert.stdin)
convert.stdout.pipe(outFileStream)

// OK
// temp-convert.jpg contains image
var fs = require('fs')
var spawn = require('child_process').spawn
var request = require('request')

var photoStream1 = request('http://www.imagemagick.org/image/wizard.jpg')
var photoStream2 = request('http://www.imagemagick.org/image/button.gif')
var outFileStream = fs.createWriteStream(__dirname + '/temp-convert.jpg')

// http://www.imagemagick.org/script/command-line-processing.php#input
var convert = spawn('convert', ['-', 'fd:3', '-append', '-'], { 
  stdio: ['pipe', 'pipe', 2, 'pipe'] 
})

photoStream1.pipe(convert.stdin)
photoStream2.pipe(convert.stdio[3])

convert.stdout.pipe(outFileStream)

// Error: shutdown ENOTCONN
// temp-convert.jpg is empty