Extrahieren einzelner frames aus einer animierten GIF-Datei auf die Leinwand
Brauche ich zum laden der frames eines animierten GIF auf einem HTML5-canvas.
Bitte beachten Sie, ich möchte nicht "spielen" animiert (jemand fragte dies vor), alles was ich will ist, um zu extrahieren alle frames als einzelne Bilder.
kann u bitte etwas konkreter
Sicher. Mit javascript+canvas, möchte ich laden, die single "anim-gif" - Datei (die aus vielen Bildern) und dann würde ich gerne jedem einzelnen extrahierten Frames als einzelne Bilder.
Sicher. Mit javascript+canvas, möchte ich laden, die single "anim-gif" - Datei (die aus vielen Bildern) und dann würde ich gerne jedem einzelnen extrahierten Frames als einzelne Bilder.
InformationsquelleAutor Omiod | 2011-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sorry, die kurze Antwort ist, dass JavaScript keine Möglichkeit der Kontrolle des aktuellen Frames eines Animierten GIF.
Die lange Antwort ist, dass es Art-Wege, das zu tun, was Sie wollen, nur mit JS, aber Sie sind sehr viel gewundenen hacks.
Beispiel hackish-Methode: Erstellen eines canvas und nicht, fügen Sie es auf dem DOM (so wird dies nicht von jedem gesehen werden). In einer schnellen Schleife (setTimeout), zeichnen auf das canvas-ständig und sammeln Momentaufnahmen. Vergleichen Sie die canvas-Bilddaten, um zu sehen, ob die Bilder sich geändert haben oder nicht.
Wäre es eine bessere Nutzung Ihrer Zeit, wahrscheinlich, um zu sehen, wie können Sie Ihren server bekommen, um es zu teilen auseinander, die für Sie (mit php/perl/python/etc)
Dieser hack sollte nicht möglich sein.
when a CanvasImageSource object represents an animated image in an HTMLImageElement, the user agent must use the default image of the animation (the one that the format defines is to be used when animation is not supported or is disabled), or, if there is no such image, the first frame of the animation
html.spec.whatwg.org/multipage/...Diese Antwort war wohl richtig, zu der Zeit. Aber heute mit libgif-js können den job zu erledigen, und es ist ziemlich einfach als gut.
InformationsquelleAutor Simon Sarris
Buzzfeed haben librarified den code aus dem repo tommitytom gepostet. Ich habe nicht versucht es noch aber es sieht gut aus.
https://github.com/buzzfeed/libgif-js
InformationsquelleAutor Brendan
Werfen Sie einen Blick auf jsgif; es lädt eine GIF-Datei, analysiert und zeichnet die einzelnen frames der Datei, um eine
<canvas>
. Mit ein bisschen Graben Sie sollten in der Lage sein, um den code, der zeichnet die einzelnen frames und von dort aus arbeiten.InformationsquelleAutor tommitytom