Animierte Gifs werden nur einmal in Chrome und Firefox wiederholt
Ich habe eine animierte gif-Datei, die ich anzeigen möchten, die jedes mal, wenn eine Seite geladen wird. Wenn ich das Bild anzeigen außerhalb des Browsers, das Bild läuft unendlich lange und funktioniert Prima, aber immer wenn ich das Bild anzeigen in einem browser, wird die animation nur einmal Schleifen. Hat jemand irgendwelche Vorschläge für das Bild in eine Endlosschleife?
Derzeit bin ich gerade dabei dieses zu machen, das Bild erscheint, die macht es scheinen, aber nur loops einmal:
document.getElementById('ajaxloader').innerHTML =
'<img src="images/ajax-loader.gif" title="Loading, please wait..">';
InformationsquelleAutor der Frage Ryan | 2012-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Stand vor dem gleichen problem mit meinem GIF encoder/decoder-Klasse schrieb ich vor einiger Zeit (und verbessert sich mit der Zeit zu Zeit). Ich fand die Lösung für dieses nur gestern. Die GIF ist völlig in Ordnung, dass das problem auf modernen internet-browser-Seite. Infizierte Browser sind Opera,IE,Chrome (nicht getestet andere).
Nach einigen Untersuchungen auf die Materie (durch den Vergleich der Schleife und nicht Schleife Bilder) fand ich heraus, dass diese Browser GIF Decoder ignorieren die Loop-Parameter in GIF - Datei. Stattdessen sind Sie abhängig von undokumentierten Anwendung-Erweiterung in den ersten frame GIF Datei.
Also die Lösung ist diese Erweiterung hinzufügen-Befehl direkt vor dem ersten frame von Bilddaten. Fügen Sie dieses Stück:
Dies zwingt Browser, um eine Schleife endlos.
Hier Beispiel:
Hex-Ansicht, damit Sie sehen, wie es wird Hinzugefügt:
Den GIF ist nicht empfindlich auf einfügen/Neuanordnung der nicht-Bild-Abschnitte von Daten, so dass Sie können fügen Sie diese vor dem ersten Bild an einer beliebigen Stelle zwischen anderen Erweiterung. Ich habe es direkt nach dem header + palette. Was kann getan werden, mit C++ oder einer anderen Sprache. (kein re-encoding notwendig ist). Für mehr info siehe:
[Edit by Reed Dunkle]
Kann man es auch manuell mit einem Hex-Editor. Ich habe "Hex Fiend" auf macOS Sierra.
Suche nach
21 F9
am Anfang Teile von hex (das ist die überschrift). Auf dem Foto oben, ist es21 F9 04 04 00 00 00 00
. Ihnen könnte etwas anders sein, aber merkt es kommt vor2C
die markiert den Beginn einer Bild-block.Bevor die
21 F9
... Teil, einfügen die folgenden hex, gekennzeichnet als "application extension" in der Foto oben:Speichern und testen Sie es.
Addon von Spektre: Hüten Sie sich vor
21 F9
Marken gfx Erweiterung Stück, das ist optional, so dass Es möglicherweise nicht für alle oder alle frames (aber das ist wirklich selten in diesen Tagen)InformationsquelleAutor der Antwort Spektre
Können Sie die gifsicle Kommandozeilen-tool zu verarbeiten, eine animierte gif-Datei, und fügen Sie in die richtigen looping, das ist mit allen Browsern kompatibel:
Animation options:
-l, --loopcount[=N] Set loop extension to N (default forever).
also im Terminal mache ich:
$ gifsicle --loopcount problem.gif > fixed.gif
Welche entsteht eine neue, Animierte GIF, das funktioniert in Chrome & Firefox sowie Safari.
InformationsquelleAutor der Antwort Matt Sephton
Können Sie entweder den Zustand einer endlichen Anzahl von Schleifen, oder Sie können den Film in einer Endlosschleife landen. UNENDLICH (oder -1) - Schleifen der Film über und über, solange die Seite auf dem Bildschirm. Zum Beispiel, dieser code erzeugt einen Film, der in einer Endlosschleife:
Quelle
InformationsquelleAutor der Antwort minimal
Schrieb, PHP gif-Fixierer basierend auf der Antwort von Spektre:
Diese macht Kopie der image.gif als _image.gif mit der nötigen string eingefügt, nach der Farben-Tabelle und druckt neue src-url. (Überprüft, ob das Bild bereits festgelegt ist.)
Verwendung:
oder
Disclaimer: keine Verantwortung übernommen und ich weiß, dass dies optimiert werden kann 🙂
InformationsquelleAutor der Antwort Rauli Rajande
Scheint es, dass Gimp ermöglichen den export von gif, Endlosschleife, richtig. Öffnen Sie einfach die gif -, dann 'Datei' > 'Exportieren' und überprüfen Sie die "Animation" und "Loop Forever" - Kästchen. Ich weiß nicht, ob dies aktualisiert die Datei, wie in Spektre Antwortaber mein test Bild geloopt richtig in FireFox 60.0b8 (64-bit), Google Chrome Version 65.0.3325.181 (Offizieller Build) (64-bit) und Safari Version 9.1.1 (11601.6.17).
InformationsquelleAutor der Antwort origamifreak2
Mit ImageMagick, oft vorinstalliert:
InformationsquelleAutor der Antwort YvesgereY