Добавить пустое пространство изображения, используя фреймворк Laravel 5 изображения интервенций, чтобы сделать квадратное изображение
Предположим, что у меня есть любимый размер квадрата, и в этом случае он имеет ширину и высоту 2236 px.
Мне нужно сохранить мои изображения в этом размере на моем сервере, используя php intervention package.
это не важно, что размер изображения пользователя , но дело в том, что изображение должно сохраняться с новым размером, но изображение пользователя должно быть центром и серединой квадрата , и если изображение меньше, чем мои любимые размеры, оно должно быть растянутым, а если изображение больше, оно должно быть растянутым. сжать до моего измерения .
Пожалуйста, взгляните на эту фотографию.:

И вот некоторые реальные примеры:


Есть ли у кого-нибудь опыт в этой ситуации, И знаете ли вы, как я могу это сделать?
Заранее спасибо
2 ответов:
Ну, спасибо
@Antonза его намек, Я сделал это, чтобы решить свою проблему:Изображение представляет собой горизонтальный прямоугольник, вертикальный прямоугольник или квадрат.
Я написал эти строки кода для каждой ситуации, и это отлично работает для моего случая
$img = Image::make($image->getRealPath()); $width = $img->width(); $height = $img->height(); /* * canvas */ $dimension = 2362; $vertical = (($width < $height) ? true : false); $horizontal = (($width > $height) ? true : false); $square = (($width = $height) ? true : false); if ($vertical) { $top = $bottom = 245; $newHeight = ($dimension) - ($bottom + $top); $img->resize(null, $newHeight, function ($constraint) { $constraint->aspectRatio(); }); } else if ($horizontal) { $right = $left = 245; $newWidth = ($dimension) - ($right + $left); $img->resize($newWidth, null, function ($constraint) { $constraint->aspectRatio(); }); } else if ($square) { $right = $left = 245; $newWidth = ($dimension) - ($left + $right); $img->resize($newWidth, null, function ($constraint) { $constraint->aspectRatio(); }); } $img->resizeCanvas($dimension, $dimension, 'center', false, '#ffffff'); $img->save(public_path("storage/{$token}/{$origFilename}")); /* * canvas */
<?php $width = 2236; $height = 2236; $img = Image::make('image.jpg'); // we need to resize image, otherwise it will be cropped if ($img->width() > $width) { $img->resize($width, null, function ($constraint) { $constraint->aspectRatio(); }); } if ($img->height() > $height) { $img->resize(null, $height, function ($constraint) { $constraint->aspectRatio(); }); } $img->resizeCanvas($width, $height, 'center', false, '#ffffff'); $img->save('out.jpg');
Comments