Аз използвам 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");