So extrahieren Sie Frames eines animierten GIF mit PHP

8

Ich suche lange nach wie man Frames aus einem animierten GIF mit PHP extrahiert ... leider habe ich gerade herausgefunden, wie man ihre Dauer bekommt ...

Ich muss wirklich die GIF-Frames und ihre Dauer extrahieren, um sie auf jedes Bild zu skalieren, zu drehen, usw., und dann das GIF mit bearbeiteten Frames zu regenerieren!

Ich möchte keine Software, externe Bibliothek (wie ImageMagick) verwenden, nur PHP: Ich muss meiner Klasse Ссылка mit animiertem GIF zu arbeiten.

Wenn Sie eine Idee haben, höre ich Ihnen ^^!

    
Sybio 23.09.2012, 10:42
quelle

4 Antworten

20

Ich habe meinen Tag damit verbracht, eine Klasse basierend auf dieser zu erstellen, um zu erreichen, was ich nur mit PHP erreichen wollte!

Sie finden es hier: Ссылка

Danke für Ihre Antworten!

    
Sybio 23.09.2012, 17:53
quelle
3

Nun, ich empfehle es nicht so, aber hier ist eine Option. Animierte Gifs sind eigentlich nur eine Anzahl von Gifs, die durch ein Trennzeichen "\ x00 \ x21 \ xF9 \ x04" verkettet sind. Wenn Sie das wissen, ziehen Sie das Bild einfach als String in PHP, führen eine Explosion aus und durchlaufen das Array, in dem Ihre Transformation ausgeführt wird. Der Code könnte in etwa so aussehen.

%Vor%

Ich bin nicht 100% ig sicher, was genau das Bild wieder verkettet, aber hier ist die Wikipedia-Seite bezüglich der Dateiformat von animierten GIFs .

    
Chris Henry 23.09.2012 14:34
quelle
2

Ich bin der Autor der Ссылка -Bibliothek, die beim Entschlüsseln von GIFs wesentlich schneller (etwa 2,5-mal) ist als Sybio/GifFrameExtractor Bibliothek aus akzeptierter Antwort. Es hat auch weniger Speicherverbrauch, weil es Ihnen ermöglicht, ein Bild nach dem anderen zur Dekodierzeit zu verarbeiten, ohne alles auf einmal in den Speicher zu laden.

Kleines Codebeispiel:

%Vor%     
stil 03.02.2015 20:59
quelle
1
  

Ich möchte keine Software, externe Bibliothek (wie ImageMagick) verwenden

Nun, viel Glück damit, denn 90% der Funktionalität, die die Zend Engine in die PHP-Laufzeit exportiert, stammen aus Bibliotheken.

  

Wenn Sie eine Idee haben, höre ich Ihnen ^^!

Parsen Sie die Binärdaten im GIF-Format. Sie könnten unter anderem unpack () verwenden.

    
Flavius 23.09.2012 13:39
quelle

Tags und Links