节点的 Graphicsmagick 不写 jpg

Graphicsmagick for node not writing the 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',错误号: 'EPIPE',系统调用:'write'}

write 方法将字符串作为输出文件名。尝试 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);
});