Я пытаюсь изменить размер изображения до ширины 500 пикселей. Я хочу сохранить соотношение сторон изображения.
Мое оригинальное изображение
Когда я изменил размер до ширины 500,
Я делаю следующий код для изменения размера изображения.
$target_dir="uploads/reference/".$data['CP_Image'];
move_uploaded_file($tmp_file, $target_dir);
list($w, $h) = getimagesize($target_dir);
$width=500;
$ratio = $width / $h;
$x = ($w - $width / $ratio) / 2;
$height = 500 / $ratio;exit;
$path = "uploads/reference/".$data['CP_Image'];
$thumb = imagecreatetruecolor($width, $height);
$source = imagecreatefromjpeg($target_dir);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $w, $h);
// Output and free memory
imagejpeg($thumb,$path);
imagedestroy($thumb);
С этим кодом ширина изменяется до 500px, но высота не пропорциональна. Что я делаю не так? Может кто-нибудь помочь мне это исправить?
заранее спасибо
Вы рассчитываете соотношение неправильно. Вместо того, чтобы делить новую ширину на исходную высоту, вы хотите что-то вроде этого:
list($w, $h) = getimagesize($target_dir);
$width = 500;
$ratio = $w / $h;
$height = $width / $ratio;
Других решений пока нет …