Gracefully deal with resizing, cropping and scaling uploaded images in Laravel apps

0.1.12 2017-12-07 09:08 UTC

This package is not auto-updated.

Last update: 2020-05-24 06:25:12 UTC


Build Status StyleCI Latest Stable Version


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:

        ->fit(250, 150)
        ->store('images/users/avatars', 'public');

The $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 instance of Vinterskogen\UploadedImage\Uploadedimage class.

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).

Image handling methods

The list of public image handling methods that are available on Uploadedimage instance:


fit(int $width, int $height) – resize and crop the uploaded image to fit given width and height, keeping aspect ratio.

fitSquare(int $size) – resize and crop the uploaded image to fit a square with given side size, keeping aspect ratio.


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.

Resize to width

resizeToWidth(int $width) – resize the uploaded image to new width, constraining aspect ratio.

Resize to height

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 file.


Vinter Skogen, 2017-2018