Php 将图像大小调整为固定大小并保持原始图像大小

Php 将图像大小调整为固定大小并保持原始图像大小,php,Php,我想从用户上传的图像中创建一个固定大小(400*320)的缩略图 保存在缩略图文件夹中,当用户单击缩略图时,原始图像的副本将发送到上载文件夹。原始图像出现问题,但与代码,原始图像上传是相同大小的缩略图请任何解决方案 代码如下: function ak_img_resize($target, $newcopy, $w, $h, $ext) { list($w_orig, $h_orig) = getimagesize($target); $img = ""; $ext =

我想从用户上传的图像中创建一个固定大小(400*320)的缩略图 保存在缩略图文件夹中,当用户单击缩略图时,原始图像的副本将发送到上载文件夹。原始图像出现问题,但与代码,原始图像上传是相同大小的缩略图请任何解决方案

代码如下:

function ak_img_resize($target, $newcopy, $w, $h, $ext) {
    list($w_orig, $h_orig) = getimagesize($target);

    $img = "";
    $ext = strtolower($ext);
    if ($ext == "gif"){ 
      $img = imagecreatefromgif($target);
    } else if($ext =="png"){ 
      $img = imagecreatefrompng($target);
    } else { 
      $img = imagecreatefromjpeg($target);
    }
    $w = 400;
    $h = 320;
    $tci = imagecreatetruecolor($w, $h);
    // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
    imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
    imagejpeg($tci, $newcopy, 90);

假设您正在使用此功能放置原始文件,可能是因为您正在尝试压缩原始文件或其他内容,但如果您希望原始文件保持其原始大小,只需将上载的文件移动到必须首先移动的位置,然后在成功移动该文件后,从移动的文件制作缩略图副本

如果要将原始图像文件放入函数中,要缩小质量或其他,请尝试进行以下调整:

# Notice the re-organizing of the params--------vv----------vv
function ak_img_resize($target, $newcopy, $ext, $w = false, $h = false)
    {
        list($w_orig, $h_orig) = getimagesize($target);
        # If you keep the width empty, take original size
        if(empty($w))
          $w    =   $w_orig;
        # If you keep the height empty, take original size
        if(empty($h))
          $h    =   $h_orig;

        $img = "";
        $ext = strtolower($ext);
        if ($ext == "gif"){ 
          $img = imagecreatefromgif($target);
        } else if($ext =="png"){ 
          $img = imagecreatefrompng($target);
        } else { 
          $img = imagecreatefromjpeg($target);
        }
        $tci = imagecreatetruecolor($w, $h);
        // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
        imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
        imagejpeg($tci, $newcopy, 90);
    }
使用:

#Sized down:
ak_img_resize($target,$newcopy,$ext,400,320);

#Original:
ak_img_resize($target,$newcopy,$ext);

假设您正在使用此功能放置原始文件,可能是因为您正在尝试压缩原始文件或其他内容,但如果您希望原始文件保持其原始大小,只需将上载的文件移动到必须首先移动的位置,然后在成功移动该文件后,从移动的文件制作缩略图副本

如果要将原始图像文件放入函数中,要缩小质量或其他,请尝试进行以下调整:

# Notice the re-organizing of the params--------vv----------vv
function ak_img_resize($target, $newcopy, $ext, $w = false, $h = false)
    {
        list($w_orig, $h_orig) = getimagesize($target);
        # If you keep the width empty, take original size
        if(empty($w))
          $w    =   $w_orig;
        # If you keep the height empty, take original size
        if(empty($h))
          $h    =   $h_orig;

        $img = "";
        $ext = strtolower($ext);
        if ($ext == "gif"){ 
          $img = imagecreatefromgif($target);
        } else if($ext =="png"){ 
          $img = imagecreatefrompng($target);
        } else { 
          $img = imagecreatefromjpeg($target);
        }
        $tci = imagecreatetruecolor($w, $h);
        // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
        imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
        imagejpeg($tci, $newcopy, 90);
    }
使用:

#Sized down:
ak_img_resize($target,$newcopy,$ext,400,320);

#Original:
ak_img_resize($target,$newcopy,$ext);

我发送了上传图像并使用resize_img.php文件的代码。请为我做这件事,我不是开发人员,我需要从你那里获取代码并粘贴它,非常感谢。代码工作我发送上传图像的代码并使用resize_img.php文件。请为我做这件事,我不是开发人员,我需要从你那里获取代码并粘贴它。非常感谢。代码工作正常