Gracefully deal with resizing, cropping and scaling uploaded images in Laravel apps
Gracefully deal with resizing, cropping and scaling uploaded images in Laravel apps.
This package allows you to retrieve an uploaded image object from request, apply manipulations over the image content and then place the result to file storage in a few lines of code.
Under the hood this package is using Intervention Image - a PHP image handling and manipulation library.
Install via Composer:
composer require vinterskogen/laravel-uploaded-image
Check the Installation page for full information about package requirements and notes.
For example your app has a controller that handles the users' avatars uploads and saves the avatar images to file storage. You want that avatars to fit to 250x150 pixels and to be encoded into PNG format.
This can be done as easy as:
$request->image('avatar') ->fit(250, 150) ->encode('png') ->store('images/users/avatars', 'public');
$request object now have an
image method, that works just like the
file method - retrieves an image file from the input and returns it as an
This class extends the Laravel's
Illuminate\Http\UploadedFile and implements
a number of helpful image handling methods.
Note: to be sure the file you are going to handle like an image is actually an image file, you have to apply form request validation constraints on your input (if you haven't done that yet, of course).
The list of public image handling methods that are available on
fit(int $width, int $height) – resize and crop the uploaded image to fit given width and height, keeping aspect
fitSquare(int $size) – resize and crop the uploaded image to fit a square with given side size, keeping
crop(int $width, int $height, int $x = null, int $y = null) – crop uploaded image to given width and height.
encode(string $format, int $quality = null) – encode uploaded image in given format and quality.
scale(int|float $percentage) – scale the uploaded image size using given percentage.
resizeToWidth(int $width) – resize the uploaded image to new width, constraining aspect ratio.
resizeToHeight(int $height) – resize the uploaded image to new height, constraining aspect ratio.
height() – get height of uploaded image (in pixels).
width() – get width of uploaded image (in pixels).
The MIT license. See the accompanying
Vinter Skogen, 2017-2018