2017-10-16 68 views

回答

0
const imageBuff = Buffer.from(image, 'base64'); 
    gm(imageBuff) 
    .resize(72, 72) 
    .strip() 
    .write('../curber/newimage.png', function (err) { 
    if (!err) console.log('done'); 

    else 
    console.log(err.log, err.stack); 
    }); 
+0

我以这种方式固定它。 –

+1

这简直是我的答案... –

0

您需要将Base64编码字符串转换为Buffer

var gm = require("gm"); 
var fs = require("fs"); 
var image = fs.readFileSync("input.png", "base64"); 

gm(Buffer.from(image, "base64")) 
.resize(72, 72) 
.strip() 
.write("output.png", function(error) { 
    if (error) return console.error(error); 
    console.log("Done!"); 
}); 
+0

是的,这是正确的,我需要中的Base64字符串转换到缓冲区。 –

+0

但是,typeof(图片)是'base64编码的字符串'。因此,fs.readFileSync(“input.png”,“base64”);不管用。 –

+0

我正在处理个人资料图片更新API&我从前端获取图像作为base64编码的字符串。我必须压缩,调整大小,然后将其保存到aws s3。 –