Wie kann ich eine animierte GIF-Datei in ihre Einzelbilder aufteilen?


44

Wie kann ich eine animierte GIF-Datei auf einfache Weise teilen? Ich möchte jeden Frame sehen.

Ich würde es wirklich vorziehen, nicht jeden Frame in ein Verzeichnis zu exportieren. Ich möchte sie nach Möglichkeit einzeln in einer Anwendung anzeigen.

Ist das unter Linux möglich?

Antworten:


52

Versuchen Sie, sie mit The Gimp zu öffnen. Ich glaube, es öffnet animierte Gifs mit einer Ebene pro Frame.

Sie sagen, Sie möchten nicht alle Frames in Dateien in einem Verzeichnis ablegen, aber ich sage Ihnen trotzdem, wie es geht :) Installieren Sie dann entweder ImageMagick oder GraphicsMagick:

für ImageMagick:

convert animation.gif target.png

für graphicsmagick:

gm convert animation.gif target.png

Es schreibt Frames nach target0.png, target1.png, ... und so weiter. Sie können dann das Verzeichnis eingeben und ausführen eog. Es werden alle Frames in derselben Anwendung angezeigt. Wenn du die Frames nicht mehr brauchst, einfach rm target*.png.


imagemagick ist einfach super !!
Fccoelho

1
imagemagic convert ist für mich fehlgeschlagen, da anscheinend jedes Bild des Gifs als neue transparente Hintergrundebene dargestellt wurde und convert diese transparenten Ebenen ergab
Ciro Santilli 新疆 新疆 改造 中心 六四 六四

Ich habe mein GIF in Gimp geöffnet, weiß aber immer noch nicht, wie ich jeden Frame einzeln betrachten soll - ich sehe nur den letzten Frame. Ich arbeite mit dieser Animation: /tmp/Non-Native-American-Nations-Territorial-Claims-over-NAFTA-countries-1750-2008.gif
nealmcb

3
GraphicsMagick muss von der Form sein, um gm convert some-image.gif +adjoin some-image%d.pngzu funktionieren. Oder gm convert some-image.gif -coalesce +adjoin some-image%d.pngfür unterschiedlich große Subframes mit unterschiedlichen Offsets.
l

1
Die angegebene Option convertfehlt. -coalesceDies ist erforderlich, um die Erwartungen eines Benutzers zu erfüllen.
Marcus

41

Wenn die verschiedenen Frames transparente Bereiche haben und aufeinander aufbauen, können Sie den convertBefehl mit der -coalesceOption " " verwenden, um eine Reihe von Dateien (target-0.png, target-1.png usw.) zu erstellen, die jeweils die Reihenfolge der vorherigen zusammenführen Bilder:

convert -coalesce animation.gif target.png

1
Großartiger Kommentar, muss aber erklärt werden. Im Grunde löst es das Problem, das @cirosantilli mit ImageMagick hatte, wenn es anscheinend Aktualisierungen für bestimmte Bildschirmbereiche zurückgab. -coalesce führt diese Aktualisierungen zusammen, um ein fertiges Rendering zu erhalten.
AnthonyVO

3
Es sollte beachtet werden, dass (ab ImageMagick Version 6.7.7) ein gewisser Speicherverlust zu bestehen scheint: Versuchen Sie nicht, -coalescelange .gifScreencasts zu erstellen , da dies wahrscheinlich den gesamten verfügbaren Speicher belegen und möglicherweise Ihr gesamtes System zum Erliegen bringen würde.
Leftaroundabout

4
Sie können die Namen der Ausgabedateien wie convert -coalesce animation.gif target.%04d.png
Trevor Boyd Smith

2

für mich, mit ImageMagick(Version Info: 6.8.9-9 Q16 x86_64 2017-07-31)

convert gif.gif gif.pdf

Wenn Sie eine PDF-Datei erstellen, wobei jede Seite ein Frame des Eingabe-Gifs ist, können Sie einfach in der PDF-Anzeige-Anwendung Ihrer Wahl durch die Frames blättern


Das scheint zu kompliziert und im Gegensatz zu dem, was OP will.
David Foerster

Bedenken Sie, dass diese Methode möglicherweise fehlerhaft ist und Sie die Anwendung optimieren müssen, um jeden Frame als Seite in einer PDF- Datei zu erhalten .
geliebt.von.Jesus

2

Benutze mpv. Öffnen Sie es auf dem Desktop. Ziehen Sie gif hinein. Machen Sie mit der Taste s einen Screenshot Ihres gewünschten Einzelbilds. Sie können sogar eine Pause einlegen, wenn Ihr GIF schnell ist. Sehr schneller Weg.

===========

Möglicherweise möchten Sie diese Einstellungen zuerst verwenden [wenn Sie sie einmal festgelegt haben, müssen Sie sie nicht erneut ausführen] :

gedit ~/.config/mpv/mpv.conf

und eingeben und speichern:

--screenshot-format Auswahlmöglichkeiten: jpg jpeg png (Standard: jpg)

für höchste png qualität:

--screenshot-format=png
--screenshot-png-compression=9

oder wenn du jpg willst

--screenshot-jpeg-quality Ganzzahl (0 bis 100) (Standard: 90)

Verwenden Sie mpv --list-options für andere Details


Hallo :) zurück andrew.46. versuchte es mit Gimp und wurde frustriert. Es gibt nicht viel, was mpv nicht kann:]
Shantiq
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.