用PHP上传调整图像大小


Resize Image with upload in PHP

这是我的工作图像上传和重命名代码,但我需要一些帮助来调整正在上传的图像的大小。

上传代码:

// Upload File to Directory
    $code = md5(time());
    $image = $_FILES['userfile']['name'];
    $imagename = $code.$image;
    $file_name = basename($_FILES['userfile']['name']);
    $uploaddir = '../_gallery/' . $imagename;
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

存储到MySQL:

$sql="UPDATE b_thome SET 
hdescription = '$front_description', 
himg = '$uploadfile', 
hndescription = '$right_description', 
hfacebook='$facebook_link', 
htwitter='$twitter_link' 
WHERE locationid = '$location'";

有没有一种简单的方法可以调整图像集大小600 x 800px?

谢谢!

使用GD库来调整其大小,它提供了图像管理所需的所有功能。有了它,你可以使用这样的功能来创建一个图像,这是第一个图像的缩小:

function resizeImage($file, $filename, $newwidth = 800, $newheight = 600)
{       
    $type = substr($file,strrpos($file,".")+1);
    switch($type) 
    {
        case 'jpg':
            $src = imagecreatefromjpeg($file);
            break;
        case 'jpeg':
            $src = imagecreatefromjpeg($file);
            break;
        case 'gif':
            $src = imagecreatefromgif($file);
            break;
        case 'png':
            $src = imagecreatefrompng($file);
            break;
        default:
            $src = imagecreatefromjpeg($file);
            break;
    }
    list($width,$height)=getimagesize($file);
    $tmp=imagecreatetruecolor($newwidth,$newheight);
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    switch($type) {
        case 'jpg':
            imagejpeg($tmp,$filename,100);
            break;
        case 'jpeg':
            imagejpeg($tmp,$filename,100);
            break;
        case 'gif':
            imagegif($tmp,$filename,100);
            break;
        case 'png':
            imagepng($tmp,$filename,9);
            break;
        case 'wbm':
            imagewbmp($tmp,$filename,100);
            break;
        default:
            imagejpeg($tmp,$filename,100);
            break;
    }
    imagedestroy($src);
    imagedestroy($tmp);
    return true;
}

或者,如果你很懒,有一个很好的开源项目叫做PHP Image Magican,它可以让图像大小调整变得既好又容易。

参考PHP GD库在上传时调整图像大小