2017-10-16 29 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。 –