Я делаю сайт на laravel voyager и мне позарез нужно конвертировать все картинки загружаемые в webp формат. Я нашел какой контроллер отвечает за загрузку картинок но не могу понять куда вставить код конвертации следующего вида imagewebp($im, 'путь'); ( или же кто-то знает как это сделать другой функцией )
Вот код класса который загружает изображения:
public function upload(Request $request)
{
$fullFilename = null;
$resizeWidth = 1800;
$resizeHeight = null;
$slug = $request->input('type_slug');
$file = $request->file('image');
$path = $slug.'/'.date('F').date('Y').'/';
$filename = basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension());
$filename_counter = 1;
while (Storage::disk(config('voyager.storage.disk'))->exists($path.$filename.'.'.$file->getClientOriginalExtension())) {
$filename = basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension()).(string) ($filename_counter++);
}
$fullPath = $path.$filename.'.'.$file->getClientOriginalExtension();
$ext = $file->guessClientExtension();
if (in_array($ext, ['jpeg', 'jpg', 'png', 'gif'])) {
$image = Image::make($file)
->resize($resizeWidth, $resizeHeight, function (Constraint $constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});
if ($ext !== 'gif') {
$image->orientate();
}
$image->encode($file->getClientOriginalExtension(), 75);
if (Storage::disk(config('voyager.storage.disk'))->put($fullPath, (string) $image, 'public')) {
$status = __('voyager::media.success_uploading');
$fullFilename = $fullPath;
} else {
$status = __('voyager::media.error_uploading');
}
} else {
$status = __('voyager::media.uploading_wrong_type');
}
return "<script> parent.helpers.setImageValue('".Voyager::image($fullFilename)."'); </script>";
}