1. Go to this page and download the library: Download stil/gif-endec library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
stil / gif-endec example snippets
GIFEndec\Events\FrameDecodedEvent;
use GIFEndec\IO\FileStream;
use GIFEndec\Decoder;
/**
* Open GIF as FileStream
*/
$gifStream = new FileStream("path/to/animation.gif");
/**
* Create Decoder instance from MemoryStream
*/
$gifDecoder = new Decoder($gifStream);
/**
* Run decoder. Pass callback function to process decoded Frames when they're ready.
*/
$gifDecoder->decode(function (FrameDecodedEvent $event) {
/**
* Convert frame index to zero-padded strings (001, 002, 003)
*/
$paddedIndex = str_pad($event->frameIndex, 3, '0', STR_PAD_LEFT);
/**
* Write frame images to directory
*/
$event->decodedFrame->getStream()->copyContentsToFile(
__DIR__ . "/frames/frame{$paddedIndex}.gif"
);
// Or get binary data as string:
// $frame->getStream()->getContents()
/**
* You can access frame duration using Frame::getDuration() method, ex.:
*/
echo $event->decodedFrame->getDuration() . "\n";
});
GIFEndec\Events\FrameRenderedEvent;
use GIFEndec\IO\FileStream;
use GIFEndec\Decoder;
use GIFEndec\Renderer;
/**
* Open GIF as FileStream
*/
$gifStream = new FileStream("path/to/animation.gif");
/**
* Create Decoder instance from MemoryStream
*/
$gifDecoder = new Decoder($gifStream);
/**
* Create Renderer instance
*/
$gifRenderer = new Renderer($gifDecoder);
/**
* Run decoder. Pass callback function to process decoded Frames when they're ready.
*/
$gifRenderer->start(function (FrameRenderedEvent $event) {
/**
* $gdResource is a GD image resource. See http://php.net/manual/en/book.image.php
*/
/**
* Write frame images to directory
*/
imagepng($event->renderedFrame, __DIR__ . "/frames/frame{$event->frameIndex}.png");
});
use GIFEndec\Color;
use GIFEndec\Encoder;
use GIFEndec\Frame;
use GIFEndec\IO\FileStream;
$gif = new Encoder();
foreach (glob('skateboarder/frame*.gif') as $file) {
$stream = new FileStream($file);
$frame = new Frame();
$frame->setDisposalMethod(1);
$frame->setStream($stream);
$frame->setDuration(30); // 0.30s
$frame->setTransparentColor(new Color(255, 255, 255));
$gif->addFrame($frame);
}
$gif->addFooter(); // Required after you're done with adding frames
// Copy result animation to file
$gif->getStream()->copyContentsToFile('skateboarder/animation.gif');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.