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');
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).
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.
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 LICENSE.md
file.
Vinter Skogen, 2017-2022