Skip to content

Easy way to create gif animations from png images for laravel.

License

Notifications You must be signed in to change notification settings

pomirleanu/gif-create

Repository files navigation

gif-create

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Easy way to create gif animations from png images for laravel 5.*.

Install

Via Composer

$ composer require pomirleanu/gif-create

Usage basic php

1. Inputs:

// Use an array containing file paths, resource vars (initialized with imagecreatefromXXX), 
// image URLs or binary image data.
$frames = array(
    imagecreatefrompng("/../images/pic1.png"),      // resource var
    "/../images/pic2.png",                          // image file path
    file_get_contents("/../images/pic3.jpg"),       // image binary data
    "http://thisisafakedomain.com/images/pic4.jpg", // URL
);

// Or: load images from a dir (sorted, skipping .files):
//$frames = "../images";

// Optionally: set different durations (in 1/100s units) for each frame
$durations = array(20, 30, 10, 10);

// Or: you can leave off repeated values from the end:
//$durations = array(20, 30, 10); // use 10 for the rest
// Or: use 'null' anywhere to re-apply the previous delay:
//$durations = array(250, null, null, 500);

2. Create the GIF:

use Pomirleanu\GifCreate;

// ...

$gif = new GifCreate\GifCreate();
$gif->create($frames, $durations);

// Or: using the default 100ms even delay:
//$gif->create($frames);

// Or: loop 5 times, then stop:
//$gif->create($frames, $durations, 5); // default: infinite looping

3. Get/use the result:

You can now get the animated GIF binary:

$gif = $gif->get();

...and e.g. send it directly to the browser:

header("Content-type: image/gif");
echo $gif;
exit;

Or just save it to a file:

$gif->save("animated.gif");

Usage in laravel 5.*

Service provider should be :

Pomirleanu\GifCreate\GifCreateServiceProvider::class,

Publish needed assets (config file) :

php artisan vendor:publish --provider="Pomirleanu\GifCreate\GifCreateServiceProvider"

Note: Composer won't update them after composer update, you'll need to do it manually!

Behavior

  • Transparency is based on the first frame. [!!NOT VERIFIED: "It will be saved only if you give multiple frames with the same transparent background"]
  • The dimensions of the generated GIF are based on the first frame, too. If you need to resize your images to get the same dimensions, you can use this class: https://github.com/Sybio/ImageWorkshop.

Dependencies

  • PHP 5.3 (for namespace support & whatnot; noone still shamelessly uses PHP < 5.3, right?!)
  • GD (imagecreatefromstring, imagegif, imagecolortransparent)

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Easy way to create gif animations from png images for laravel.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages