Laravel - Медиальная библиотека Spatie

В моем проекте Laravel 5.8 я использую плагин Spatie Media Library для своих изображений. Теперь я хочу использовать плагин Intervention Image для изменения размера и кадрирования.

Итак, это часть моего кода:

if ($request->input('thumbnail', false)) {
   $automobil->addMedia(storage_path('tmp/uploads/' . $request->input('thumbnail')))->toMediaCollection('thumbnail');
}

Как я могу включить класс Image в этот код? Или как мне изменить его размер и подогнать под правильные размеры? Я обычно использую это так:

$image = $request->file('image');
$filename = $image->getClientOriginalName();

//Fullsize
$image->move(public_path().'/uploads/'.'/products/'.'/original/',$filename);

$image_resize = Image::make(public_path().'/uploads/'.'/products/'.'/original/'.$filename);
//watermark add
$image_resize->insert(public_path('watermark/watermark.jpg'), 'bottom-right', 300, 50);
$image_resize->fit(1280, 720);
$image_resize->save(public_path('uploads/products/original/' .$filename));

но media library не позволяет мне использовать его таким образом, потому что он сохраняет изображения в другой папке и в другой таблице базы данных.

Я не хочу использовать MediaConversion


person Milos    schedule 22.08.2020    source источник


Ответы (2)


Сделайте преобразование для большого / полноразмерного изображения в вашей коллекции эскизов

$mediaItems = $yourModel->getMedia('thumbnail');
$image_resize = Image::make($mediaItems[0]->getPath('yourfullsizeconversion'));
person Cameron    schedule 22.08.2020
comment
if ($request->input('thumbnail', false)) { $mediaItems = $yourModel->getMedia('thumbnail'); $image_resize = Image::make($mediaItems[0]->getPath('yourfullsizeconversion')); } Вы имеете в виду что-то подобное? - person Milos; 22.08.2020

Попробуй это

$image = $request->file('image');
$filename = $image->getClientOriginalName();
$location = public_path('uploads/products/original/' . $filename);       
$image_resize = Image::make($image)->insert(public_path('watermark/watermark.jpg'), 'bottom-right', 300, 50)->fit(1280, 720)->save($location);// Image save and check image in public/uploads/products/original folder. 
person Sobir    schedule 22.08.2020