Я хочу сохранить соотношение сторон изображений при изменении их размеров. Я получил 94 000 изображений, которые мне нужно отображать в виде изображений предварительного просмотра на социальном сайте. Задача, которую я получил, - это то, что некоторые пользователи загружают полноразмерные фотографии, в результате они кажутся растянутыми после повторной калибровки. Для реализации этого я использую код-воспламенитель. Имена файлов находятся в таблице базы данных. Это код, я используюImagick photo multiple image resize crop без искажения/растяжения php
if (file_exists($_SERVER["DOCUMENT_ROOT"]."/uploads/profiles /purchased_profiles/".$images_->_file_name)) {
//echo "The file $filename exists";
$thumb = new Imagick();
$thumb->readImage($_SERVER["DOCUMENT_ROOT"]."/uploads/profiles/purchased_profiles/".$images_->_file_name);
$orientation = $thumb->getImageOrientation();
switch($orientation) {
case imagick::ORIENTATION_BOTTOMRIGHT:
$thumb->rotateimage("#000", 180); // rotate 180 degrees
break;
case imagick::ORIENTATION_RIGHTTOP:
$thumb->rotateimage("#000", 90); // rotate 90 degrees CW
break;
case imagick::ORIENTATION_LEFTBOTTOM:
$thumb->rotateimage("#000", -90); // rotate 90 degrees CCW
break;
}
$thumb->resizeImage(160,160,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage($_SERVER["DOCUMENT_ROOT"]."/uploads/profiles/purchased_profiles/160x160/".$images_->_file_name);
$thumb->clear();
$thumb->destroy();
}
Спасибо, что магия даже не редактировала ваш код –