Laravel image intervention compression
Try the encode()
method, where you can specify the format
and the quality
(for jpg
). So, everytime you use the cache, try to do this:
$cache_image = Image::cache(function ($image) use ($size, $name) {
$image
->make(...)
->... // any other call to image manipulation methods
->encode('jpg', 75);
// ...
return $image;
});
You need to use the save() method of the Image class where you will specify the quality of the image. The actual signature of the method save() is:
save([string $path, [int $quality], [string $format]])
Sample Examples are as follows:
<br>
// open an image file<br>
$img = Image::make('public/foo.jpg');
<br>
<br>
// save file as jpg with medium quality<br>
$img->save('public/bar.jpg', 60); <br><br>
// save the same file as jpg with default quality<br>
$img->save('public/baz.jpg');<br><br>
// save the file in png format with good quality<br>
$img->save('public/bar.png', 75);<br><br>
// save the image jpg format defined by third parameter<br>
$img->save('public/foo', 80, 'jpg');
<br><br>
For more information, please take a look at http://image.intervention.io/api/save