2016-01-29 83 views
0

我正在使用cfs:graphicsmagick for meteor的包,我想從base64字符串讀取圖像。使用imagemagick從Meteor中的base64字符串中讀取圖像使用imagemagick

Meteor.methods({ 
    "readImage"(imgSrc) { 
    const imageMagick = gm.subClass({ imageMagick: true }); 

    imageMagick(imgSrc) 
    .write("path/to/image.jpg", (err) => { 
     if (err) console.log(err); 
     else console.log("yay!") 
    }); 
    } 
}); 

然而,當我嘗試運行這段代碼我得到一個錯誤:

{ [Error: spawn ENAMETOOLONG] code: 'ENAMETOOLONG', errno: 'ENAMETOOLONG', syscall: 'spawn' } 

我試圖將字符串轉換通過new Buffer(string, [encoding])但沒有運氣來緩衝。

字符串與此類似:data:image/png;base64,iVBORw0K...

關於如何使其工作的任何建議?

回答

2

嘗試通過base64字符串而不是類型定義(data:image/png; base64,)直到逗號符號。 如:iVBORw0K...

我使用這個功能來進行轉換:

var fs = Npm.require('fs'); 
... 
base64_decode: function(base64str, file) { 
    var bitmap = new Buffer(base64str, 'base64'); 
    fs.writeFileSync(file, bitmap); 
} 

示例用法:

base64_decode('iVBORw0K...', '/path/to/file.png');