使用PHP上传来调整图像大小

时间:2012-07-20 13:45:07

标签: php image

以下是我的工作图片上传和重命名代码,但我需要一些帮助才能调整正在上传的图片的大小。

上传代码:

// 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的大小?

谢谢!

3 个答案:

答案 0 :(得分:1)

使用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;
}

答案 1 :(得分:1)

或者,如果你很懒,有一个很好的开源项目叫做PHP Image Magican,可以让图片大小变得简单明了。

答案 2 :(得分:0)

请参阅PHP GD Library以在上传时调整图片大小