Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Gif Laravel Package

intervention/gif

Native PHP GIF encoder/decoder for GIF data streams with no image extensions required. Decode files or binary content, and build animated GIFs via a Builder. Includes optional GD-based Splitter to extract frames into GDImage objects. Supports PHP 8.3+.

View on GitHub
Deep Wiki
Context7

Intervention GIF

Native PHP GIF Encoder/Decoder

Latest Version build Monthly Downloads Support me on Ko-fi

Intervention GIF is a PHP encoder and decoder for the GIF image format that does not depend on any image processing extension.

Only the special Splitter::class class divides the data stream of an animated GIF into individual GDImage objects for each frame and is therefore dependent on the GD library.

The library is the main component of Intervention Image for processing animated GIF files with the GD library, but also works independently.

Installation

You can easily install this package using Composer. Just request 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 new gif canvas
$gif = Builder::canvas(width: 32, height: 32);

// 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');

// set loop count; 0 for infinite looping
$gif->setLoops(12);

// encode
$data = $gif->encode();

Requirements

  • PHP >= 8.3

Development & Testing

With this package comes a Docker docker test runners. 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

Authors

This library is developed and maintained by Oliver Vogel

Thanks to the community of contributors who have helped to improve this project.

License

Intervention GIF is licensed under the MIT License.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport