С помощью этого кода загружаемые изображения уменьшаются в размере, чтобы соответствовать установленному максимальному размеру, сохраняя исходное соотношение сторон. Это прекрасно работает.
Теперь я стремлюсь к тому, чтобы он также обрезал изображение, поэтому оно меняет соотношение сторон на 4: 3 (горизонтальное / вертикальное). Также в пределах максимального размера 800 пикселей в любом случае.
Я пробовал различные коды/идеи, которые мог найти в сети, но они, похоже, искажали изображение, только обрезали или вообще не работали. Как можно включить обрезку аспекта в код, который у меня уже есть?
$max_width = 800;
$max_height = 800;
$image_size_info = getimagesize($image_temp);
$image_width = $image_size_info[0];
$image_height = $image_size_info[1];
$image_res = imagecreatefromjpeg($image_temp);
$image_scale = min($max_width/$image_width, $max_height/$image_height);
$new_width = ceil($image_scale * $image_width);
$new_height = ceil($image_scale * $image_height);
$canvas = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($canvas, $image_res, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagejpeg($canvas, 'images/image.jpg', 85);
imagedestroy($image_res);
PS: Пожалуйста, вопрос именно об ЭТОМ коде