2017-02-27 4 views
1

Ich weiß, ich ImageMagick kann ein animiertes Gif in seine konstituierenden RahmenWie Nth Rahmen von GIF extrahieren mit kumulativen berücksichtigt Folien

convert my.gif my.png 

Das Problem ist, zu explodieren, dass alle Frames mit Ausnahme des ersten eine Menge enthalten von Transparenz, nehme ich wegen einer Art von diff-Kompression an.

Ich möchte das N-te Bild als eine separate Datei, wie es im endgültigen Rendering erscheinen würde, nachdem alle transparenten Schichten nach dem ersten Bild angewendet wurden. Dies ist eine sehr große (Gigabyte) Datei mit 1080p Frames, also möchte ich nicht alle extrahieren, nur die Nth.

Wie kann ich das tun? Ich brauche eine nicht-interaktive Lösung.

Antwort

0

nicht zu 100% sicher, wie Sie dies als dort zu arbeiten erwarten könnte mehr als ein GIF-Frame an jeden 1080p Rahmen entspricht, also Ihre Berechnung von N wahrscheinlich anders sein wird von ImageMagick ‚s Konzept der N. Im Rahmen der Optimierung kann ImageMagick 2 Teilfreigaben für einen Frame und 2 weitere Überschreibungen für die Wiedergabe eines einzelnen 1080p-Frames auswählen, wodurch sich die Werte jedes Mal um mehrere Frames unterscheiden.

Wie auch immer, können Sie versuchen, mit der -coalesce Option zu experimentieren, die ImageMagick zwingt alle Teile neu notwendig, einen vollständigen Rahmen zu machen, und dann umgebenden Rahmen zu löschen.

Die am wenigsten ressourcenintensive Option ist wahrscheinlich ein einzelnes Bild zu versuchen und laden:

convert a.gif[784] -coalesce frame784.png 

Die nächste am wenigsten intensiv ist wahrscheinlich alle Frames vor dem laden Sie wollen und nicht Laden späteren stören:

convert a.gif[0-784] -coalesce -delete 0-783 frame-784.png 

die ressourcenintensiv, aber die am ehesten zu arbeiten, ist wahrscheinlich alle Frames zu laden und dann nicht benötigte löschen:

convert my.gif -coalesce -delete 0-783,785--1 frame784.png 

Ich kenne Ihre Daten nicht - versuchen Sie sie und sehen Sie.

+0

Danke. Kannst du bitte erklären, was du damit meinst: "Es könnte mehr als einen GIF-Rahmen geben, der jedem 1080p-Frame entspricht"? – spraff

+0

Im Rahmen der GIF-Optimierung bestimmt ImageMagick den optimalen Weg, um von Ihrem 1080p-Frame N zu Ihrem 1080p-Frame N + 1 zu gelangen. Es kann nur die Unterschiede in einem einzelnen GIF-Rahmen speichern, oder es kann die obere linke Ecke als eine "GIF" -Operation löschen, dann einen Teil dieser oberen linken Ecke als eine andere "GIF" -Operation neu zeichnen und dann etwas oben zeichnen -richtig als eine andere "GIF" -Operation und zeichne dann etwas in der Mitte als eine andere "GIF" -Operation. Es gibt jetzt 4 GIF * -Frames * für einen einzelnen 1080p-Frame, sodass die Frame-Nummern möglicherweise nicht übereinstimmen. –

Verwandte Themen