Generieren Sie Animierte GIF mit GM in Node.js

also ich habe, um diese ein für ein paar Tage und habe den Punkt, wenn ich bereit bin, um Hilfe zu bitten.

Ich versuche zu generieren, eine animierte gif-Datei mit in ein node.js basierte app, mit der graphicsmagic Paket.

Habe ich generiert mehrere Folien, die sehen ein bisschen, wie

var slides = [];

for (var i=0; i < 10; i++) {
  var slide = gm(200, 200, '#000000')
    .fill('#ffffff')
    .drawText("Slide #"+ i);

  slides.push(slide);
}

Kann ich konvertieren Sie Sie entweder in den Stream oder Puffer, ich kann speichern Sie Sie als einzelne Dateien auf der Festplatte und ein bisschen arbeiten

Aber mein problem ist, wie man eine animierte gif von Dias, die völlig im Speicher, ohne speichern der einzelnen Dateien auf einer Festplatte?

Sehe ich gm hat Methoden wie #delay() und #page() und technisch so konnte ich das Handwerk einen Befehl wie

convert -delay 200 -page slide1.gif -page slide2.gif output.gif

Ich weiß nur nicht, wie. Ich denke es sollte ungefähr so aussieht, dass

var end_image = gm(200, 200, '#000000');

end_image.delay(500);

for (var i=0; i < slides.length; i++) {
  slides[i].toBuffer(function(err, buffer) {
    end_image.page(200, 200, ????);
  });
}

end_image.write("output.gif");

im Grunde weiß ich nicht, wie konvertiert einen Puffer in ein argument für gm

Jemand vorher getan? Vielleicht gibt es einen anderen Weg?

PS: ich habe versucht, die gifencoder - Paket als gut, und erfolgreich gefüttert, die gm Puffer als Bilder in ein gifencoder-API, aber der Ausgang war kaputt.

  • Sie waren in der Lage, um dies herauszufinden? Ich habe versucht, sowohl die gifencoder (so weit wie es klingt wie Sie haben, bekomme aber "segmentation fault" beim Versuch Sie zu verwenden addFrame() mit Puffer) und die gif-Modul (das scheint zu funktionieren nur mit älteren Versionen von Knoten).
  • nope, habe es durch dumping eine Reihe von Dateien in /tmp und Beschuss aus
  • Ich habe den code dazu mit dem JIMP Bibliothek, aber ich versuche herauszufinden, wie dies mit den GM selbst
InformationsquelleAutor Nikolay | 2014-05-19
Schreibe einen Kommentar