ImageMagick: как правильно ужать картинку?

127
04 апреля 2021, 22:20

Необходимо с помощью ImageMagick обрезать фотографии по умному, то есть если фотография высокая по вертикали, то нужно при указании размера, скажем 100 на 100, ужать фото по горизонтали до 100 и обрезать по вертикали до 100.

Видел как это делается на других сайтах, таким образом создаются миниатюры.

У меня вот такой код:

header('Content-type: image/jpeg');
$image = new Imagick('https://site.ru/foto.jpg');
$image->adaptiveResizeImage(100, 100, true);
$image->writeImage('adaptiveResizeImage.jpg');
echo $image;

adaptiveResizeImage - должен делать то, что мне нужно, однако фото просто ужимается по пропорциям до размера скажем 100 на 300.

Пример как нужно сделать (только тут пример про горизонтальную фото)

Answer 1

Все оказалось проще простого, пришлось перелопатить английские форумы, в русском гугле вообще 0 информации об этом:

header('Content-type: image/jpeg');
$image = new Imagick('https://site.ru/foto.jpg');
$image->cropThumbnailImage(100, 100);
$image->writeImage('adaptiveResizeImage.jpg');
echo $image;
READ ALSO
Регулярное выражение для preg_replace которое срабатывает на обратный слеш (“\”)

Регулярное выражение для preg_replace которое срабатывает на обратный слеш (“\”)

подскажите, пожалуйста, правильное регулярное выражение для preg_replace в PHP

109
Как сохранить созданное изображение в папку на сервере?

Как сохранить созданное изображение в папку на сервере?

Есть вот такой код, который меняет размер у фотографии, как мне сохранить его в указанную папку?

99
Утилитой sendmail отправить письмо

Утилитой sendmail отправить письмо

Нужно вручную отправить письмо на почтуИменно только утилитой sendmail

119
Как сгенерировать UUID с помощью PHP?

Как сгенерировать UUID с помощью PHP?

Нужна строка вот такого вида, которая вроде как состоит из случайных чисел:

168