lee-to / laravel-thumbnails
Laravel thumbnails module
Installs: 1 437
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: ^7.3|^8.0
- ext-curl: *
- ext-json: *
- intervention/image: ^2.5
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: 8.5.x-dev
This package is auto-updated.
Last update: 2024-11-15 00:56:21 UTC
README
Все манипуляции с изображениями проводятся на основе пакет https://github.com/Intervention/image
При первом обращении к файлу происходит генерации на основе заданных параметров (метод, размер)
А далее уже берется сгенерированное изображение, тем самым обращаемся к генерации единожды
Установка
composer require lee-to/laravel-thumbnails
php artisan vendor:publish --provider="Leeto\Thumbnails\Providers\ThumbnailsServiceProvider"
Использование
Конфиг
return [ // Диск filesystem 'disk' => env('FILESYSTEM_DISK', 'local'), // Допустимые значения размеров, в противном случае 403 'allowed_sizes' => ['150x150'], // Значения по умолчанию для метода thumbnails 'defaults' => [ 'field' => 'photo', 'dir' => 'images', 'size' => '150x150', 'method' => 'resize', ] ];
Добавьте trait Leeto\Thumbnails\Traits\WithThumbnails для необходимой модели
<img src="{{ $model->getThumbnail('image', 'crop', '150x150') }}" />
Вывод изображения
$model->getThumbnail($field, $method, $size);
$model->getThumbnail(); // Можно ничего не указывать, тогда установятся значения из конфига defaults
Описание аргументов метода thumbnail
- $field = Поле в таблице в котором хранится наименование изображения или массив изображений
- $method = Метод обработки изображения (Допустимы crop,fit и resize)
- $size = Размер итогового изображения (Пример 100x100 или 100)
- $dir = Директория где хранится изображение (По умолчанию берется из конфига)