ab01faz101 / laravel-image-resizer
Resize image to multiple sizes in Laravel
Requires
- php: >=8.0
- intervention/image-laravel: ^1.5
- laravel/framework: ^11.0 || ^12.0
README
A simple and flexible Laravel package for resizing and encoding images into multiple sizes and formats, powered by Intervention Image.
β¨ Features
- Resize images into multiple predefined sizes (XL, MD, SM, XS) or custom sizes.
- Supports image encoding formats:
jpeg
,jpg
,png
, andwebp
. - Saves resized images to specified storage disk and directory.
- Option to override encoder format dynamically.
- Uses Laravel's filesystem and Intervention Image package under the hood.
π Installation
-
Require the package via Composer (assuming itβs published on Packagist):
composer require ab01faz101/laravel-image-resizer
-
(Optional) Publish the config file:
php artisan vendor:publish --tag=laravel_image_resizer_config
-
Configure
config/laravel_image_resizer.php
as needed (see Configuration section).
βοΈ Configuration
The package configuration file contains:
return [
'sizes' => [
'lg' => [1200, 800],
'md' => [600, 400],
'sm' => [150, 150],
],
'config' => [
'encoder_status' => true,
'encoder' => 'webp', // supported values: 'webp', 'png', 'jpeg', 'jpg'
],
];
sizes
: Default sizes for resizing.encoder_status
: Enable or disable image encoding.encoder
: Default encoder format for output images.
π Usage
Include the LaravelImageResizer
trait in your Laravel class:
use Ab01faz101\LaravelImageResizer\Traits\LaravelImageResizer;
class YourClass
{
use LaravelImageResizer;
// Your methods
}
πΌοΈ Basic resize and save
use Illuminate\Http\Request;
public function uploadImage(Request $request)
{
$image = $request->file('image');
$paths = $this->resizeAndSave(
$image,
'uploads/images', // target directory
'public', // storage disk
'webp' // optional encoder override
);
// $paths will be an array with keys: xl, md, sm, xs containing saved paths.
}
π§ Resize with custom sizes
$sizes = [
'large' => [1200, 800],
'medium' => [600, 400],
'small' => [300, 200],
];
$paths = $this->resizeWithCustomSizes(
$image,
$sizes,
'uploads/custom',
'public',
'png'
);
π Methods
Method
Description
Parameters
Returns
resizeAndSave
Resize the uploaded image into default sizes and save
UploadedFile $image
, string $directory
, string $disk
, ?string $overrideEncoder
Array of saved file paths
resizeWithCustomSizes
Resize the image to custom sizes and save
UploadedFile $image
, array $sizes
, string $directory
, string $disk
, ?string $overrideEncoder
Array of saved file paths
π οΈ Requirements
- PHP 8.2 or higher
- Laravel 10 or higher
- Intervention Image package (
intervention/image
)
π License
MIT License
π¨βπ» Author
Abolfazl Qaederahmat
β If you find this package useful, please star the repository on GitHub β
Β© 2025 Abolfazl Qaederahmat