/ / Lire une image de la chaîne base64 dans Meteor en utilisant imagemagick - météore, imagemagick, graphicsmagick

Lire une image d'une chaîne base64 dans Meteor en utilisant imagemagick - météore, imagemagick, graphicsmagick

J'utilise le paquet cfs: graphicsmagick pour météore et je veux lire une image à partir de la chaîne base64.

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!")
});
}
});

Cependant, lorsque j'essaie d'exécuter ce code, j'obtiens une erreur:

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

J'ai essayé de convertir une chaîne en mémoire tampon via new Buffer(string, [encoding]) mais pas de chance.

La chaîne est semblable à ceci: data:image/png;base64,iVBORw0K....

Des suggestions sur comment puis-je le faire fonctionner?

Réponses:

2 pour la réponse № 1

Essayez de passer la chaîne base64 sans pour autant définition du type (data: image / png; base64,) jusqu'au symbole de virgule. Par exemple: iVBORw0K...

J'utilise cette fonction pour effectuer la conversion:

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

exemple d'utilisation:

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