Graphicsmagick节点不写入JPG

我正在使用https://github.com/aheckmann/gm来调整图像大小。

var gm = require('gm').subClass({ imageMagick: true }); var fs = require('fs'); var dir = __dirname+'/img'; var readStream = fs.createReadStream(dir + '/Desert.jpg'); var writeStream = fs.createWriteStream(dir + '/resize.jpg'); gm(readStream) .size({bufferStream: true}, function(err, size) { this.resize(50, 50, '%') this.write(writeStream, function (err) { if (!err) console.log('done'); }); }); 

我正在使用上面的代码来调整图像….问题是一个空的图像正在生成,错误信息是{[错误:写入EPIPE]代码:'EPIPE',errno:'EPIPE',系统调用:'写'}

write方法将一个string作为输出文件名。 试试stream方法:

 gm(readStream) .size({bufferStream: true}, function(err, size) { this.resize(50, 50, '%') .stream() .on('end',function(){ console.log('done'); }) .on('error',function(err){ console.log(err); }) .pipe(writeStream); });