Как изменить размер изображения с фиксированной шириной и высотой при загрузке

0

Когда я загружаю изображение, которое я хочу сжать с фиксированной шириной и высотой, я попробовал много. Я прикрепил свой код ниже:

$extension = getExtension($filename);
                    $extension = strtolower($extension);


                    if($extension=="jpg" || $extension=="jpeg" )
                    {
                    $src = imagecreatefromjpeg($tmpFilePath);
                    }

                    else 
                    {
                    $src = imagecreatefromgif($tmpFilePath);
                    }
                    list($width,$height)=getimagesize($tmpFilePath);


                    $newwidth=1000;
                    $newheight=($height/$width)*$newwidth;
                    $tmp=imagecreatetruecolor($newwidth,$newheight);


                    $newwidth1=540;
                    $newheight1=236;
                    $tmp1=imagecreatetruecolor($newwidth1,$newheight1);

                    $newwidth2=253;
                    $newheight2=($height/$width)*$newwidth2;
                    $tmp2=imagecreatetruecolor($newwidth2,$newheight2);

                    $newwidth3=840;
                    $newheight3=365;
                    $tmp3=imagecreatetruecolor($newwidth3,$newheight3);

                    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

                    imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);

                    imagecopyresampled($tmp2,$src,0,0,0,0,$newwidth2,$newheight2,$width,$height);

                    imagecopyresampled($tmp3,$src,0,0,0,0,$newwidth3,$newheight3,$width,$height);


                    $filename = "gallery/".$_FILES['egallery_img'.$i]['name'];

                    $filename1 = "gallery/ms". $_FILES['egallery_img'.$i]['name'];

                    $filename2 = "gallery/vs". $_FILES['egallery_img'.$i]['name'];

                    $filename3 = "gallery/medium". $_FILES['egallery_img'.$i]['name'];



                    imagejpeg($tmp,$filename,100);

                    imagejpeg($tmp1,$filename1,100);

                    imagejpeg($tmp2,$filename2,100);

                    imagejpeg($tmp3,$filename3,100);

                    imagedestroy($src);
                    imagedestroy($tmp);
                    imagedestroy($tmp1);
                    imagedestroy($tmp2);

                    imagedestroy($tmp3);

                   $epaname = $filename;
                   unlink($deletImg);
                   unlink($msdeletImg);
                   unlink($vsdeletImg);
                   unlink($mdeletImg);

Я получаю ширину, как она указана в моем кодировании, но я не получаю правильную высоту.

Как я могу это решить? или есть кто-нибудь, кто может предложить мне другой способ решить это. Если я установил ширину и высоту, это значит, что мое изображение получает повреждение. Еще раз спасибо.

  • 0
    Если вы задаете вопрос о PHP, не помечайте HTML, CSS и jQuery. Вы не включили тег PHP, поэтому не многие разработчики PHP помогут вам. Я изменю это для тебя.
  • 0
    Я благодарю тебя, брат, я исправлюсь.
Теги:
image-processing
gd

1 ответ

0

Я рекомендую класс SimpleImage, он очень прост в использовании.

Пример использования:

$img = new SimpleImage('source/path/of/your/image.jpg');

// Resize the image to 320x200
$img->resize(320, 200);

$img->save('destination/path/for/new-image.jpg');

Вы можете получить его из https://github.com/claviska/SimpleImage

Ещё вопросы

Сообщество Overcoder
Наверх
Меню