Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Sybio/GifFrameExtractor
GifFrameExtractor is a PHP class that separates all the frames (and their duration) of an animated GIF
https://github.com/Sybio/GifFrameExtractor
Last synced: about 1 month ago
JSON representation
GifFrameExtractor is a PHP class that separates all the frames (and their duration) of an animated GIF
- Host: GitHub
- URL: https://github.com/Sybio/GifFrameExtractor
- Owner: Sybio
- Created: 2012-09-23T13:44:25.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-07-23T14:07:50.000Z (over 2 years ago)
- Last Synced: 2024-05-16T04:55:19.635Z (7 months ago)
- Language: PHP
- Homepage:
- Size: 236 KB
- Stars: 177
- Watchers: 16
- Forks: 59
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-gif - GifFrameExtractor - PHP class that separates all the frames of an animated GIF. (Libraries / PHP)
- awesome-php-cn - Sybio/GifFrameExtractor - 一个提取GIF动画帧信息的库 (目录 / 图像 Imagery)
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:**
```php
$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:**
```php
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:
```php
$frameImages = $gfe->getFrameImages();
$frameDurations = $gfe->getFrameDurations();
```And obtain usefull informations:
```php
$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:```php
$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).