Glide is an easy to use image manipulation library by Jonathan Reinink. It was bumped to version 1.0.0 a few days ago. Glide can created optimized images on the fly by levering url's such as
/img/users/1.jpg?w=300&h=400&fit=crop. Take a look at the example in the Glide documentation to know more.
I think Glide provides a very nice API to create image manipulations. Unfortunately it isn't very easy to use the API to generate an image using code. So I created a little package for that called laravel-glide. All new major versions of Spatie packages will require PHP 7, laravel-glide is no exception to this.
Here's an example of how to create a greyscale version image with a maximum width of 50 pixels.
GlideImage::create($pathToImage) ->modify(['filt'=>'greyscale', 'w'=> 50]) ->save($pathToWhereToSaveTheManipulatedImage);
Take a look at Glide's image API to see which parameters you can pass to the modify-method.