Обработка изображений 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("Загружаемый файл не изображение..."); 
    } 
} 
} 

Ответы (0 шт):