Php 当使用此代码时,如何以高质量重新调整图像大小?

Php 当使用此代码时,如何以高质量重新调整图像大小?,php,resize,Php,Resize,当使用此代码时,如何以高质量重新调整图像大小 徖 <?PHP if(isset($_POST["Submit"])) { $image_type_check = $_FILES['file']['type']; //file type $image_name = $_FILES['file']['name']; //file name $image_size = $_FILES['file']['size']; //file size

当使用此代码时,如何以高质量重新调整图像大小

<?PHP
if(isset($_POST["Submit"]))
    {
        $image_type_check = $_FILES['file']['type']; //file type
        $image_name = $_FILES['file']['name']; //file name
        $image_size = $_FILES['file']['size']; //file size
        $image_temp = $_FILES['file']['tmp_name']; //file temp
        $image_size_info = getimagesize($image_temp); //get image size

        //Get file extension and name to construct new file name 
        $image_info = pathinfo($image_name);
        $image_extension = strtolower($image_info["extension"]); //image extension
        $image_name_only = strtolower($image_info["filename"]);//file name only, no extension

        //create a random name for new image (Eg: fileName_293749.jpg);
        $new_file_name = '123456789'.$image_extension;

        list($width,$height)=getimagesize($image_temp);

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

        $filename = "uploads/".$new_file_name;

        imagejpeg($tmp,$filename,100);
    }
?>

  • 您应该使用
    move\u uploaded\u file()

    以确保路径正确且文件有效

  • 要更改大小,需要
    imagecopyresampled()

  • 您的文件名对无效

$image\u info=pathinfo($image\u name)
$image\u extension=strtolower($image\u info[“extension”])
$new\u file\u name='123456789'。$image\u扩展名

你得到

$new\u file\u name=='123456789jpg'

没有



你能给我们$width、$height的值吗?旧的宽度为2000px,新的宽度为300px,问题出在哪里?你得到了什么?你的代码真的起作用了吗?我遗漏了一些东西,比如——目前这应该只是一张空图片……你看到我的答案了吗?这对我有用。
[...]
$image_extension = "." . strtolower($image_info["extension"]);

$target = "uploads/123456789".$image_extension;

if(move_uploaded_file($image_temp,$target)) {
  if ($image_extension == '.jpg') {
  // Get new dimensions
  list($width_orig, $height_orig) = getimagesize($image_temp);
  $ratio_orig = $width_orig/$height_orig;

  $width = 985;

  if ($width_orig > $height_orig) {
    $height = $width / $ratio_orig;
  } else {
    $height = $width * $ratio_orig;
  }   

  // Resample

  $image_p = imagecreatetruecolor($width, $height);
  $image = imagecreatefromjpeg($target);
  imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

  imagejpeg($image_p,$target,100);
  imagedestroy($image_p);
  } //is jpg file
} else { echo "File could not be moved to" .$target; }