Привет, возможно вопрос покажется глупым, но так, как я пока новичок, я не понимаю, что я делаю не так, поэтому прошу помощи.
Суть проблемы такова: К примеру изображение превышает размеры и мне нужно привести его к максимально допустимым размерам, которые записаны в переменных
$width и
$height.
Если изображение превышает размеры, но оно горизонтальное - всё работает, как задумано. Если изображение вертикальное, то оно не приводится к максимально допустимому значению, которое записано в переменной
height. Что я делаю не так? Может есть какой-то более элегантный способ приведения изображения к максимально допустимым размерам?
P.S. Мне нужно, чтобы это делал именно php, a js
Код<?php
//код приводит изображение к максимально заданным размерам
header('Content-Type: image/jpeg');
$filename = 'imagev.jpg';
$width = 300; //maximum values
$height = 300;
list($width_orig, $height_orig) = getimagesize($filename);// присваеваем значения переменным ширины и высоты оригинала
if ($width_orig > $width) {
$w_ratio = $width / $width_orig;
$fin_hegight = $height_orig * $w_ratio;
$fin_width = $width;
} elseif ($height_orig > $height){
$h_ratio = $height / $height_orig;
$fin_width = $width_orig * $h_ratio;
$fin_height = $height;
}
$image_p = imagecreatetruecolor($fin_width, $fin_hegight);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $fin_width, $fin_hegight, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
?>
Код:
https://pastebin.com/FL76yu24