Image Transformer
Image transformer dependency for Laravel Enso.
This package can work independently of the Enso ecosystem.
For live examples and demos, you may visit laravel-enso.com
Installation
Comes pre-installed in Enso.
To install outside of Enso:
composer require laravel-enso/image-transformer
In order for the optimization to work, you need to have the following packages installed:
- pngquant
- gifsicle
- jpegoptim
- php7.1-gd or php-imagick
On Linux, you can do that with: sudo apt-get install pngquant gifsicle jpegoptim php7.1-gd
IMPORTANT NOTE:
The underlying image processing libraries may use a lot of memory,
especially if the processed files are large (for example, for an 8MB file, more than 128MB of memory might be used ),
so make sure to configure php accordingly and/or do ini_set(‘memory_limit’, ‘256M’);
Failure to do so may result in silent errors if allotted memory is insufficient.
Features
- handles image optimization, using the Laravel Image Optimizer library
- handles image cropping, using the Intervention Image library
- for the non essential libraries, handles missing libraries gracefully, logging the fact but does not throw an error
Usage
The ImageTransformer
class has 2 public methods:
optimize
, takes no argument and tries to optimize the fileresize
, takes the target width and height and resizes the file, possibly changing the aspect rationwidth
, resizes the file to the given width, maintaining aspect ratioheight
, resizes the file to the given height, maintaining aspect ratio
Note, an ImageTransformerException
is thrown if:
- the
gd
orimagick
extensions are missing - a file type not supported for an uploaded file
- an uploaded file fails the basic validation
External dependencies
Contributions
are welcome. Pull requests are great, but issues are good too.
License
This package is released under the MIT license.