1

我正在使用 gm 库调整图像大小,但它会创建一个空图像。我使用不同的方式来编写结果,但每次都得到空图像。

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

我也使用这种方式,但结果是一样的。

gm(srcPath)
.resize(100, 100)
.stream(function(err, stdout, stderr) {
    if(err){
        console.log('ERRoor:', err);
    }
    // ws = fs.createWriteStream( output );
    i = [];
    stdout.on( 'data', function(data){
        // console.log('data');
        i.push( data );
    });
    stdout.on( 'close', function(){
        console.log( 'close' );
        var image = Buffer.concat( i );
        writeStream.write( image.toString('base64'), 'base64' );
        writeStream.end();
    });
});

也是这样:

gm(srcPath)
.resize(100, 100)
.write(writeStream, function (err) {
    var thumbUrl, error;
    if (err) {
        error = err;
    } else{
        thumbUrl = thumbPath.replace(/\\/g, '/');
        thumbUrl = thumbUrl.replace(/^\.\/public/, '');
    }

    callback(error, thumbUrl);
});

这样每次都将 en empty object({}) 作为错误返回!

4

0 回答 0