Type
magento2-module
Intervention Image helper for Magento 2
magento2-module
MIT
None
None
None
None
None
A useful template helper for applying transformations to images in Magento 2 using the Intervention Image library.
composer require dakzilla/intervention-image-helper
php bin/magento setup:upgrade
.phtml
template. No need to create a custom block!Call the image helper from any front-end (.phtml) template using this code:
<?php
/** @var \Dakzilla\Intervention\Helper\Image $imageHelper */
$imageHelper = $this->getImageHelper();
?>
You can now call the make
method to a relative image path or an image URL
$image = $imageHelper->make('test/Pineapple.jpg')
Will resolve and load the file at /path/to/your/site/pub/media/test/Pineapple.jpg
Then, you can chain the desired transformation methods, and finally call the get
method to get the http link to the cached image:
$imageUrl = $image->flip()
->invert()
->resize(350, null, function ($constraint) {
$constraint->aspectRatio();
})
->get();
# Will return http://mysite.com/media/cache/dakzilla_intervention/<cache key>/myimage.jpg
Or, you can do all of these at once with a short, chained syntax:
<img src="<?php echo $this->getImageHelper()
->make('test/Pineapple.jpg')
->flip()
->invert()
->fit(350, 700)
->get(); ?>">
JPEGs can be reduced in size by lowering the quality of the final output. PNGs will not be compressed, since they are a lossless format. From the template, call this method on the image helper to enable JPEG compression and set the quality (1-100, lowest to highest):
<?php
/** @var \Dakzilla\Intervention\Helper\Image $imageHelper */
$imageHelper->make('path/to/my/image.jpeg')->setQuality(75);
?>
Delete the image cache directory. By default, this is <magento root>/pub/media/cache/dakzilla_intervention
To avoid potential permission issues, do not re-create this folder after deleting it. Let Magento re-create it automatically with the server permissions.
The helper provides IDE-compatible method hints for every available transformation method. For the most part, these methods are self-explanatory. For further information on these methods, please refer to the Intervention Image documentation.
This module has been tested with Magento 2.1 through 2.3. As Magento 2 is still evolving rapidly, there is no guarantee that it will work with every version. However, as this package is unassuming in what it achieves and respects Magento 2 best coding practices, I see no reason why it should cause issues in your installation.
This simple package is piggybacking on the incredible work of Oliver Vogel with his Intervention Image and Image Cache packages.
This module was also inspired by the awesome work of Stämpfli AG and their Magento 2 Image Resizer module.
This module is licensed under the MIT License
Copyright 2017 Simon Dakin
Made with ♥ in Montreal