/ / Прочетете изображението от низ от base64 в Meteor използвайки imagemagick - meteor, imagemagick, graphicsmagick

Прочетете изображение от базовия низ в Meteor с помощта на imagemagick - meteor, imagemagick, graphicsmagick

Аз използвам cfs: graphicsmagick пакет за метеор и искам да чета изображение от 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!")
});
}
});

Въпреки това, когато се опитам да изпълня този код, получавам грешка:

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

Опитах се конвертиране на низ в буфер чрез new Buffer(string, [encoding]) но няма късмет.

Последователният низ е подобен на този: data:image/png;base64,iVBORw0K....

Всички предложения за това как мога да го накарам да работи?

Отговори:

2 за отговор № 1

Опитайте се да преминете низът 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");