Dynamically resize an image and returns the URL using Intervention and Storage
- Laravel 5+
- Intervention Image ^2.4
- Local
- S3
- Oss (Aliyun Cloud Storage)
This package can be installed through Composer.
composer require maximumadvertising/laravel-image-resize
For Laravel 5.4 and lower, you'll have to register the service provider and alias manually.
Add to service providers
Mxmm\ImageResize\ImageResizeServiceProvider::class,
And alias
'ImageResize' => Mxmm\ImageResize\Facade::class,
Publish config and assets (Optional)
php artisan vendor:publish --provider="Mxmm\ImageResize\ImageResizeServiceProvider"
Accepted parameters:
/**
* @param string|null $path
* @param int|null $width
* @param int|null $height
* @param string $action
* @return string
*/
public static function url(string $path = null, int $width = null, int $height = null, string $action = 'fit'): string
In HTML:
<img src="{{ ImageResize::url('originalDir/filename.jpg', width, height, [action]) }}" />
Fit (resize & crop) an image to 200x200px
<img src="{{ ImageResize::url('originalDir/filename.jpg', 200, 200, 'fit') }}" />
Resize an image to 200x200px
<img src="{{ ImageResize::url('originalDir/filename.jpg', 200, 200, 'resize') }}" />
Fit (resize & crop) an image to 200px width, with auto height
<img src="{{ ImageResize::url('originalDir/filename.jpg', 200, null, 'fit') }}" />
sample output
<img src="https://localhost/thumbs/originalDir/fit/200x200/filename.jpg" />
Run tests with:
vendor/bin/phpunit