Ändern Sie die Größe der animierten GIF-Datei, ohne die Animation zu zerstören
Ich brauche, um die Größe einer animierten GIF-Datei zu zerstören, ohne die animation.
Wie kann ich es machen mit PHP?
InformationsquelleAutor der Frage riad | 2009-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie imagemagick zugreifen, können Sie dies tun:
dies ist den meisten wahrscheinlich möglich ist mit der imagemagick-plugin, wenn Sie nicht über system () - Zugriff
HINWEIS: dies kann eine größere Dateigröße wenn Sie einen kleineren Abmessungen Bild durch Koaleszenz im wesentlichen deoptimizing das Bild.
UPDATE:
Wenn Sie nicht über ImageMagick zugreifen, sollten Sie in der Lage sein, verwenden Sie eine Kombination der folgenden Schritte aus, um die Größe einer animierten gif-Datei (vorausgesetzt, Sie haben mit GD-access):
Dies ist auf jeden Fall viel intensiver als die ImageMagick-route, aber es sollte technisch möglich sein.
Wenn Sie es arbeiten, bitte teilen Sie mit der Welt!
InformationsquelleAutor der Antwort Jeremy Stanley
Versuchen
GDEnhancer(Verwenden Sie Wurden imagecraft). Es müssen nur die GD-Library, und es halten gif-animationInformationsquelleAutor der Antwort nut
Würden Sie brauchen, um zu zerlegen die gif in Einzelbilder, Miniaturbilder und wieder zusammenbauen.
Haben Sie einen Blick auf ImageMagick und dieses tutorial.
InformationsquelleAutor der Antwort cherouvim
Habe ich versucht mit zahlreichen Beispielen Größenänderung animierte GIFs mit PHP-Modul Imagick, aber keiner von Ihnen arbeitete für mich.
Dann nach einigem Debuggen mal, endlich fand ich die eigentliche Problem: die animation war verloren beim speichern Bild auf der Festplatte, von
$animation->writeImage($file_dst);
oder$animation->writeImages($file_dst, true);
Habe ich es geändert
file_put_contents($file_dst, $animation->getImagesBlob());
und die meisten Beispiele, die begann sofort mit der Arbeit.
Hoffe, es hilft jemand.
InformationsquelleAutor der Antwort Antony Harder
Beispiel auf http://www.php.net/manual/en/imagick.coalesceimages.php wird, ändern Sie die Größe Ihrer gif-unter Beibehaltung der frame-timing. Etwas die meisten anderen Beispiele nicht zu tun.
Andere Beispiele rebuild das gif während dieser können Sie ändern den Rahmen des Bildes.
InformationsquelleAutor der Antwort Matt Crossley
Wenn Sie ImageMagick installiert haben, dann können Sie mit einem einzigen Aufruf zu
convert
:InformationsquelleAutor der Antwort Alec Jacobson
Ich denke, ich habe dies in der Tasche.
Diese Lösung ist keineswegs perfekt und enthält einige brute-force hier und da, aber ich war in der Lage, append mein GD /PHP basierte Bild Größenänderung Skript mit genügend Funktionen für die Unterstützung von Animationen.
Die Lösung ist stark basiert auf der hervorragenden freeware-Bibliotheken, die von László Zsidi - http://www.phpclasses.org/browse/author/283569.html
Können Sie sich eine kurze demo und laden Sie die Quellen aus http://forssto.com/gifexample/ (direkter link: http://forssto.com/gifexample/gifanimresize.zip )
BEKANNTE PROBLEME:
Transparenz-Unterstützung - das wäre
einfach zum Anhängen an diese Lösung, aber
wie ich nicht über eine unmittelbare Notwendigkeit für
dies, ich stoppe hier.
Bildrate - für einige unbekannten Grund
der GifEncoder-Klasse versäumt, die
Berücksichtigung der frame-raten
angegeben. Ich habe suchen müssen, in
diese später.
Habe ich eine gif-Datei von meinem set
tests, die musste irgendwie anders
Größe Rahmen und animation
konnte nicht ordnungsgemäß. Noch einige
debugging zu tun dann.
InformationsquelleAutor der Antwort Tommi Forsström
nur creat 3 Ordner name 1.frame_output 2.Bild 3.resized_frame_output und download-2 encoder und decoder-Klasse von diesem link unten
1.Download-Klasse "GIFDecoder.class.php" aus http://phpclasses.elib.com/browse/package/3234.html
2.Download-Klasse "GIFEncoder.class.php" aus http://phpclasses.betablue.net/browse/package/3163.html
und führen Sie dann das Skript-Namen "resize_animator.php" , creat eine html-Datei hochladen & Lassen Sie uns Genießen Sie das Skript.
..speichern Sie dieses Skript als .....index.php.......
........................sparen und dieses Skript als resize_animator.php............
.......................GENIEßEN KÖNNEN............
kommentieren Sie die usleep-Funktion zu sehen, die arbeiten geschehen in diesen Ordner.es ist nicht notwendig, aber ich nutze es, um zu sehen, die Funktionalität.
InformationsquelleAutor der Antwort riad
Wenn Sie nicht haben, Imagemagick auf Ihrem server, können Sie versuchen, diese :
http://www.phpclasses.org/package/7353-PHP-Resize-animations-in-files-of-the-GIF-format.html
Klasse ist das ändern der Größe von GIF-Animationen mit GD. Erste analysiert die frames, dann ändert Sie nach, dass es kompiliert Sie wieder in eine einzige Datei, ohne Verzögerungszeiten,Entsorgung, Farbe, Tabellen etc.
Versuchen, und wenn Sie einen Fehler finden oder wollen, empfehlen einige Optimierungen etc. Sie können die Klasse' forum oder hinterlassen Sie einen Kommentar auf der Seite in meiner website. Und ich Antworte, so schnell wie möglich.
InformationsquelleAutor der Antwort Taha Paksu
Dieser alle Antworten außer Trog ImageMagick nicht funktioniert für mich. Skripte zu Antworten, bevor diese alle sind voller Fehler.
Sogar bei der Installation von ImageMagick war schwierig zu verwalten, so, hier ist meine Erfahrung.
Hier ist wie ImageMagick zu installieren auf windows 7 und xampp 1.7.4.
Hinweis: Wählen Sie 64 bit (win7), und bei der Installation lassen Sie die option aktiviert "Add to system path".
Dann Folgen:
http://www.creativearmory.com/tutorials/resize-animated-gifs-with-php-and-imagemagick
Verloren ich habe Stunden auf Skripte auf diese Beiträge, und ImageMagick und dieses tutorial war erfolgreichen in Minuten.
Und noch eine Anmerkung: mein webserver haben ImageMagick standardmäßig, also ich denke mal die meisten Server haben es auch.
InformationsquelleAutor der Antwort Sturko
GIF-Animation Resizer ist eine einfache one-class-tool, das den trick tun.
Hinweis: Es verwendet einen temporären Ordner zu schreiben, lassen sich die einzelnen frames. Während die Zeitstempel der frames, müssen Sie möglicherweise erstellen Sie einen eindeutigen Ordner, wenn Sie wollen verwenden Sie diese auf einem server wo mehrere Benutzer die Größe GIF-Dateien zur gleichen Zeit.
InformationsquelleAutor der Antwort David Harkness
Wurden imagecraft ist ein zuverlässiges PHP GD-Bibliothek und-Erweiterung, die hält GIF-animation, zu Bearbeiten und zu Komponieren Bilder in mehreren Ebenen und unterstützt Wasserzeichen.
InformationsquelleAutor der Antwort Waqas Bukhary
Habe ich diese Funktion:
}
InformationsquelleAutor der Antwort Fernando RIS