intervention / gif
Native PHP GIF Encoder/Decoder
Installs: 62 773
Dependents: 1
Suggesters: 0
Security: 0
Stars: 26
Watchers: 3
Forks: 6
Open Issues: 3
Requires
- php: ^8.0
Requires (Dev)
- phpstan/phpstan: ^1
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2023-12-01 13:52:28 UTC
README
Native PHP GIF Encoder/Decoder
Installation
You can install this package easily with Composer. Just require the package with the following command:
composer require intervention/gif
Code Examples
Decoding
use Intervention\Gif\Decoder; // Decode filepath to Intervention\Gif\GifDataStream::class $gif = Decoder::decode('/images/animation.gif'); // Decoder can also handle binary content directly $gif = Decoder::decode($contents);
Encoding
Use the Builder class to create a new GIF image.
use Intervention\Gif\Builder; // create an empty canvas // $width = 32; $height = 32; $loops = 0; // 0 for unlimited repetitions // create new gif with width/height and optional // number of repetitions of animation $gif = Builder::canvas($width, $height, $loops); // add animation frames to canvas // $delay = .25; // delay in seconds after next frame is displayed $left = 0; // position offset (left) $top = 0; // position offset (top) // add animation frames with optional delay in seconds // and optional position offset for each frame $gif->addFrame('/images/frame01.gif', $delay, $left, $top); $gif->addFrame('/images/frame02.gif', $delay, $left); $gif->addFrame('/images/frame03.gif', $delay); $gif->addFrame('/images/frame04.gif'); // encode $data = $gif->encode();
Requirements
- PHP >= 8.0
Development & Testing
With this package comes a Docker image to build a test suite and analysis container. To build this container you have to have Docker installed on your system. You can run all tests with this command.
docker-compose run --rm --build tests
Run the static analyzer on the code base.
docker-compose run --rm --build analysis
License
Intervention GIF is licensed under the MIT License.
Copyright 2020 Oliver Vogel