Обработка изображений php
Использую следующий код для обработки изображений, но в некоторых случаях, например, когда изображение очень высокое, оно становится очень пиксельным. И изменение заданных размеров $width и $height на большие не помогает. А ещё они иногда поворачиваются на 90 градусов. В чём ошибка?
//Проверка изображения
$filename1 = $_FILES ["filename1"]["tmp_name"];
if ($_FILES["filename1"]["name"] == ''){
} else {
if(exif_imagetype($filename1) == IMAGETYPE_JPEG){
$size = getimagesize($filename1);
if ($size){
$width = 2000;
$height = 2000;
list($width_orig, $height_orig) = getimagesize($filename1);
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename1);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
$dir = '../img/' . $currentid . '/';
$newFileName = $prefix2 . '.jpg';
$newFileNamedb = $dir . $newFileName;
imagejpeg($image_p, $dir . $newFileName, 95);
unlink ($filename1);
unlink($currentimg2);
$sql = "UPDATE users SET images1='$newFileNamedb' WHERE login='$login'";
if (mysqli_query($conn, $sql)) {
}
} else {
exit("Загружаемый файл не изображение...");
}
} else if(exif_imagetype($filename1) == IMAGETYPE_PNG){
$size = getimagesize($filename1);
if ($size){
$width = 2000;
$height = 2000;
list($width_orig, $height_orig) = getimagesize($filename1);
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefrompng($filename1);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
$dir = '../img/' . $currentid . '/';
$newFileName = $prefix5 . '.png';
$newFileNamedb = $dir . $newFileName;
imagejpeg($image_p, $dir . $newFileName, 95);
unlink ($filename1);
unlink($currentimg2);
$sql = "UPDATE users SET images1='$newFileNamedb' WHERE login='$login'";
if (mysqli_query($conn, $sql)) {
}
} else {
exit("Загружаемый файл не изображение...");
}
}
}