У меня есть форма загрузки, где вы выбираете фотографии. После загрузки я изменяю размер изображения, если это необходимо.
Кажется, любая фотография, которую я загружаю, где HEIGHT > WIDTH
растягивает изображение. Если я загружаю изображение, где WIDTH > HEIGHT
, оно работает нормально. Я ломал голову, пытаясь понять это. Я почти уверен, что знаю, какая строка является проблемой, и я указал на это в комментарии.
Может ли кто-нибудь увидеть, что не так с моей математикой? Спасибо!
<?php
$maxWidth = 900;
$maxHeight = 675;
$count = 0;
foreach ($_FILES['photos']['name'] as $filename)
{
$uniqueId = uniqid();
$target = "../resources/images/projects/" . strtolower($uniqueId . "_" . $filename);
$file = $_FILES['photos']['tmp_name'][$count];
list($originalWidth, $originalHeight) = getimagesize($file);
// if the image is larger than maxWidth or maxHeight
if ($originalWidth > $maxWidth || $originalHeight > $maxHeight)
{
$ratio = $originalWidth / $originalHeight;
// I think this is the problem line
(($maxWidth / $maxHeight) > $ratio) ? $maxWidth = $maxWidth * $ratio : $maxHeight = $maxWidth / $ratio;
// resample and save
$image_p = imagecreatetruecolor($maxWidth, $maxHeight);
$image = imagecreatefromjpeg($file);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $maxWidth, $maxHeight, $originalWidth, $originalHeight);
$image = imagejpeg($image_p, $target, 75);
}
else
{
// just save the image
move_uploaded_file($file,$target);
}
$count += 1;
}
?>