sybio / gif-frame-extractor
PHP class that separates all the frames (and their duration) of an animated GIF
Installs: 315 898
Dependents: 10
Suggesters: 2
Security: 0
Stars: 179
Watchers: 16
Forks: 59
Open Issues: 9
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-12-12 01:47:11 UTC
README
GifFrameExtractor
================================
GifFrameExtractor is a PHP class that separates all the frames (and their duration) of an animated GIF
For what ?
The class helps you to separate all the frames of an animated GIF, for example to watermark them and then to generate a new watermarked and animated GIF.
Usage
GifFrameExtractor is really easy to use:
1 - Extraction:
$gifFilePath = 'path/images/picture.gif'; if (GifFrameExtractor::isAnimatedGif($gifFilePath)) { // check this is an animated GIF $gfe = new GifFrameExtractor(); $gfe->extract($gifFilePath); // Do something with extracted frames ... }
2 - Getting the frames and their duration:
foreach ($gfe->getFrames() as $frame) { // The frame resource image var $img = $frame['image']; // The frame duration $duration = $frame['duration']; }
You can also get separately an array of images and an array of durations:
$frameImages = $gfe->getFrameImages(); $frameDurations = $gfe->getFrameDurations();
And obtain usefull informations:
$totalDuration = $gfe->getTotalDuration(); // Total duration of the animated GIF $frameNumber = $gfe->getFrameNumber(); // Number of extracted frames var_dump($gfe->getFrameDimensions()); // An array containing the dimension of each extracted frame var_dump($gfe->getFramePositions()); // An array containing the original positions of each extracted frame inside the GIF
Option:
You can choose if you want to get the original frames (with transparency background) or frames pasted on the first one with the second parameter of extract() method:
$gfe->extract('path/images/picture.gif', true); // Can get transparency orignal frames
This option is false by default.
About
The class reuses some part of code of "PHP GIF Animation Resizer" by Taha PAKSU (thanks to him).