PHP-上载具有最大宽度和高度的缩略图图像

PHP-上载具有最大宽度和高度的缩略图图像,php,image,file,upload,resize,Php,Image,File,Upload,Resize,我想上传一个图像,并有它的最大宽度为150像素和最大高度为400像素的缩略图版本,并作为缩略图文件名保存 if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size =$_FILES['image']['size']; $file_tmp =$_FILES['image']['tmp_name']; $file_type=$_FILES['image']['typ

我想上传一个图像,并有它的最大宽度为150像素和最大高度为400像素的缩略图版本,并作为缩略图文件名保存

if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$file_type=$_FILES['image']['type'];  
$tempext =  explode('.',$_FILES['image']['name']);
$file_ext=strtolower(end($tempext));
$extensions = array("jpeg","jpg","png","gif","");       
if(in_array($file_ext,$extensions )=== false){
 $errors[]="extension not allowed, please choose a different file.";
}
if($file_size > 419430400){
$errors[]='Maximum file size is 400mb';
}               
if(empty($errors)==true){
    move_uploaded_file($file_tmp,"../large_format/a0/".$file_name);
    echo '<script>function myFunction(){alert("Success!");} myFunction();</script>';
}else{
    print_r($errors);
}
function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":$source=imagecreatefromgif($image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":$source=imagecreatefromjpeg($image);break;
        case "image/png":
        case "image/x-png":$source=imagecreatefrompng($image); break;
    }
    $size_fit=$_SESSION['size_fit'];
    if($size_fit==1){
    if ($width > 140){
                $newwidth=140;
                $newheight=($height/$width)*140;
            }else {$newwidth=$width;
                $newheight=$height;}
    imagecopyresampled($newImage,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
    }else{
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    }
    switch($imageType) {
        case "image/gif":imagegif($newImage,$image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":imagejpeg($newImage,$image,90);break;
        case "image/png":
        case "image/x-png":imagepng($newImage,$image); break;
    }
    chmod($image, 0777);
    return $image;
}
if(isset($\u文件['image'])){
$errors=array();
$file\u name=$\u文件['image']['name'];
$file\u size=$\u文件['image']['size'];
$file\u tmp=$\u FILES['image']['tmp\u name'];
$file\u type=$\u文件['image']['type'];
$tempext=explode('.',$_文件['image']['name']);
$file_ext=strtolower(end($tempext));
$extensions=array(“jpeg”、“jpg”、“png”、“gif”和“”);
if(在数组中($file\u ext,$extensions)==false){
$errors[]=“不允许扩展名,请选择其他文件。”;
}
如果($file_size>419430400){
$errors[]=“最大文件大小为400mb”;
}               
if(空($errors)=true){
移动上传的文件($file\u tmp,“../large\u format/a0/”)$file\u name);
echo“function myFunction(){alert(“Success!”);}myFunction();”;
}否则{
打印错误($errors);
}
所以会有一个大的图像文件和它的缩略图版本。 我非常希望能举一个建议代码的例子

function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":$source=imagecreatefromgif($image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":$source=imagecreatefromjpeg($image);break;
        case "image/png":
        case "image/x-png":$source=imagecreatefrompng($image); break;
    }
    $size_fit=$_SESSION['size_fit'];
    if($size_fit==1){
    if ($width > 140){
                $newwidth=140;
                $newheight=($height/$width)*140;
            }else {$newwidth=$width;
                $newheight=$height;}
    imagecopyresampled($newImage,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
    }else{
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    }
    switch($imageType) {
        case "image/gif":imagegif($newImage,$image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":imagejpeg($newImage,$image,90);break;
        case "image/png":
        case "image/x-png":imagepng($newImage,$image); break;
    }
    chmod($image, 0777);
    return $image;
}
提前感谢

尝试
getimagesize()
函数

function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":$source=imagecreatefromgif($image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":$source=imagecreatefromjpeg($image);break;
        case "image/png":
        case "image/x-png":$source=imagecreatefrompng($image); break;
    }
    $size_fit=$_SESSION['size_fit'];
    if($size_fit==1){
    if ($width > 140){
                $newwidth=140;
                $newheight=($height/$width)*140;
            }else {$newwidth=$width;
                $newheight=$height;}
    imagecopyresampled($newImage,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
    }else{
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    }
    switch($imageType) {
        case "image/gif":imagegif($newImage,$image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":imagejpeg($newImage,$image,90);break;
        case "image/png":
        case "image/x-png":imagepng($newImage,$image); break;
    }
    chmod($image, 0777);
    return $image;
}
试试这个代码

function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":$source=imagecreatefromgif($image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":$source=imagecreatefromjpeg($image);break;
        case "image/png":
        case "image/x-png":$source=imagecreatefrompng($image); break;
    }
    $size_fit=$_SESSION['size_fit'];
    if($size_fit==1){
    if ($width > 140){
                $newwidth=140;
                $newheight=($height/$width)*140;
            }else {$newwidth=$width;
                $newheight=$height;}
    imagecopyresampled($newImage,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
    }else{
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    }
    switch($imageType) {
        case "image/gif":imagegif($newImage,$image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":imagejpeg($newImage,$image,90);break;
        case "image/png":
        case "image/x-png":imagepng($newImage,$image); break;
    }
    chmod($image, 0777);
    return $image;
}
您不需要更改这些函数

function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":$source=imagecreatefromgif($image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":$source=imagecreatefromjpeg($image);break;
        case "image/png":
        case "image/x-png":$source=imagecreatefrompng($image); break;
    }
    $size_fit=$_SESSION['size_fit'];
    if($size_fit==1){
    if ($width > 140){
                $newwidth=140;
                $newheight=($height/$width)*140;
            }else {$newwidth=$width;
                $newheight=$height;}
    imagecopyresampled($newImage,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
    }else{
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    }
    switch($imageType) {
        case "image/gif":imagegif($newImage,$image); break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":imagejpeg($newImage,$image,90);break;
        case "image/png":
        case "image/x-png":imagepng($newImage,$image); break;
    }
    chmod($image, 0777);
    return $image;
}

你好,施布·托马斯。你能告诉我怎么用这个吗?