So sortieren Sie animierte GIFs von nicht animierten GIFs

1273
Ventolinmono

Ich habe einen Ordner mit vielen Bildern und möchte animierte GIFs von nicht animierten GIFs sortieren und die animierten GIFs in einen neuen Ordner verschieben. Wurde mit Software wie XnView und XnViewMp für Windows ausprobiert, diese Option ist jedoch nicht verfügbar [ http://newsgroup.xnview.com/viewtopic.php?f=82&t=31485 ]. Versuchen Sie auch Folgendes: Wie teilt man einen Ordner mit GIFs in animierte und statische Ordner auf, aber der Befehl Image Magic gilt nur für ein Bild und es gibt zu viele Dateien, um dies einzeln zu tun.

6

3 Antworten auf die Frage

4
splash

Um die animierten GIFs herauszufiltern, müssen Sie nach GIF-Dateien mit mehr als einem Frame suchen. Jeder Frame beginnt mit einem Block "Graphics Control Extension" mit der hexadezimalen Signatur 21 F9 04. Sie müssen also nach .gif-Dateien mit zwei oder mehr Vorkommen dieser Signatur suchen. Diese sollten normalerweise animierte GIFs sein.

Dieser allgemeine Ansatz sollte mit jedem Werkzeug funktionieren, das eine Art binäre Suche zusammen mit Platzhaltern unterstützt. Dies bedeutet auch, dass viele Tools mit Unterstützung für reguläre Ausdrücke animierte GIF-Dateien mit diesem Ausdruck finden sollten:

\x00\x21\xf9\x04.*\x00\x21\xf9\x04 
  • Zuerst habe ich meinen Lieblingsdateimanager Total Commander ausprobiert, aber leider unterstützt die bereitgestellte Regex-Engine keine mehrzeilige Suche und sie funktioniert nicht.
  • Swiss File Knife (sfk): Finden Sie alle animierten GIFs auf Laufwerk C:
    sfk xfind -firsthit -pat "/\x21\xf9\x04[4 bytes]\x00**\x21\xf9\x04/" -dir c:\ -file .gif | findstr ":file"
  • FreeCommander unterstützt den obigen Ausdruck in seinem Dialog "Dateien suchen" (erweiterter Modus)
  • PowerGREP findet auch animierte GIFs mit den Optionen "Durch Binärdateien suchen" und "Punkt trifft auf Zeilenumbrüche".
  • Grep für Windows :grep -Pl "(?s)\x00\x21\xf9\x04.*\x00\x21\xf9\x04" *.gif
Das ** Regex ** für _Swiss File Knife_ findet nicht alle animierten GIFs. Ich löschte dann alle animierten GIFs in diesem Ordner mit: `sfk xfind -firsthit. "/ \ x00 \ x21 \ xf9 \ x04 [4 bytes] \ x00 ** \ x21 \ xf9 \ x04 /" + del -yes | findstr ": file" ``, aber es gibt noch einige GIF-Dateien, die animiert werden. Ich habe FreeCommander und PowerGREP nicht ausprobiert, da sie keine freie Software sind und mit Grep für Windows oder GrepWin keine schnellen Ergebnisse erzielt haben (ich weiß nicht, wie man grep). Ventolinmono vor 9 Jahren 0
Sehr wichtig bei der Verwendung dieses Ausdrucks in einem Ordner, der andere Typen enthält, gibt er Dateien wie .exe oder .dll zurück. Ich denke, es ist nicht exklusiv für GIF-Dateien. Ventolinmono vor 9 Jahren 0
@Ventolinmono Sie können einfach mit dem Befehl sfk ein Dateimuster hinzufügen, um nur nach GIF-Dateien zu suchen. ** Free ** Commander ist natürlich kostenlos, deshalb heißt es so, wie es ist. Für _grep_ hat die Antwort ein funktionierendes Beispiel, so dass ich nicht sehe, warum Sie nicht wissen, wie man sie benutzt. splash vor 9 Jahren 0
@Ventolinmono Es ist nicht ungewöhnlich, dass das Muster für reguläre Ausdrücke auch in anderen Binärdateien enthalten ist. Deshalb sollten Sie eine Dateimaske verwenden. splash vor 9 Jahren 0
3
Karan

ExifTool ist einfach unglaublich und enorm leistungsfähig:

exiftool -if "$FrameCount > 0" -directory=Animated *.gif 
** Awesome! ** Es macht die Arbeit sehr einfach. Ventolinmono vor 9 Jahren 0
Ja, es ist großartig, nicht wahr? Ich verwende es seit langem (hauptsächlich zum Bearbeiten / Löschen von JPEG-Metadaten) und entdecke regelmäßig neue Funktionen und Anwendungen. Auch der Entwickler (ein Nuklearphysiker und Programmierer) ist äußerst hilfreich, wenn Sie also Schwierigkeiten haben, schreiben Sie im Forum (oder hier auf SU :). Karan vor 9 Jahren 0
0
MarkinID

Dies kann sich von dem unterscheiden, wonach Sie suchen, aber es funktioniert ganz einfach: Verwenden Sie einen Bildbetrachter wie den FastStone Image Viewer, der unter verfügbar ist (ich verwende die portable Version.):

http://www.faststone.org/FSViewerDownload.htm

Erstellen Sie einen Ordner für die Motion-Gif-Bilder.

Beobachten Sie die GIF-Bilder im Viewer, um zwischen Bewegungs-GIFs und Nicht-Bewegungs-GIFs leicht zu unterscheiden. Wenn Sie mit dem Betrachter durch die Bilder gehen, wählen Sie die GIF-Bilder im Windows-Datei-Explorer aus, indem Sie für jedes Bewegungs-Gif die Umschalttaste + Rechtsklick drücken.

Wenn Sie alle Motion-Gif-Bilder ausgewählt haben, schneiden Sie sie mit Ctrl + X aus, gehen Sie dann in Ihren Motion-Gif-Ordner und fügen Sie sie mit Strg + V in den Ordner ein.

Das ist es, obwohl es auch ein guter Zeitpunkt ist, um einige veraltete Bilder loszuwerden.

MarkinID