/**
* * @author zhao jinhan * @date January 13, 2014 11:54:30 * @email xb_zjh@126.com * */ header('Content-type:text/html; charset=utf-8'); //Define the thumbnail Width and height define('THUMB_WIDTH',300); define('THUMB_HEIGHT',300); /** * Regenerate the uploaded file name * @return string * @author zhao jinhan * */ function _file_type($filetype = null){ switch($filetype) { case "image/jpeg": $fileextname = "jpg"; break; case "image/gif": $fileextname = "gif"; break; case "image/png": $fileextname = " png"; break; default: $fileextname = false; break; } return $fileextname?date('YmdHis',time()).'.'.$fileextname:false; } /* * * * @param string $filename * @param string $width * @param string $height * @param string $quality * @param string $savepath * @return boolean */ function _make_thumb($filename='', $width=THUMB_WIDTH, $height=THUMB_HEIGHT, $savepath='./upload'){ if(file_exists($filename)){ //Upload Image size $imagesize=getimagesize($filename); $imagewidth=$imagesize[0]; $imageheight=$imagesize[1]; $mime = $imagesize['mime']; //Width and height Ratio $ratio = $imagewidth/$imageheight; //Create a new background image $bgimg = imagecreatetruecolor($width, $height); $white = imagecolorallocate($bgimg, 255, 255, 255); // Fill the background color to white imagefill($bgimg,0,0,$white); if($mime == 'image/gif'){ $im = @imagecreatefromgif($filename); /* Attempt to open * / $outfun = 'imagegif'; }elseif($mime == 'image/png'){ $im = @imagecreatefrompng($filename); /* Attempt to open */ $outfun = 'imagepng'; }else{ $im = @imagecreatefromjpeg($filename); /* Attempt to open */ $outfun = 'imagejpeg'; } if($ratio > 1){
//The width is larger
if ($imagewidth > height-$new_height)/2));
imagecopyresampled($bgimg, $im, 0, $bg_y, 0, 0, $new_width, $new_height, $imagewidth, $imageheight);
}else{
//Copy image Go to the background image
$copy = true;
}
}else{
//The height is larger
if($imageheight > $height){
//Scale the image
$new_height = $height;
$new_width = ( $height*$imagewidth)/$imageheight;
$bg_x = ceil(($width-$new_width)/2);
imagecopyresampled($bgimg, $im, $bg_x, 0, 0, 0, $new_width, $new_height , $imagewidth, $imageheight);
}else{
//Copy the image to the background image
$copy = true;
}
}
if($copy){
//Copy the image to the background image
$bg_x = ceil(($width-$imagewidth)/2);
$bg_y = ceil(($height-$imageheight)/2);
imagecopy($bgimg, $im, $bg_x, $bg_y, 0, 0, $imagewidth, $imageheight);
}
$ext = _file_type($mime);
$outfun($bgimg, $savepath.'/'.$ext);
imagedestroy($bgimg);
return $savepath.' /'.$ext;
}else{
return false;
}
}
if($_POST){
$size = $_POST['size']?strtoupper(trim($_POST['size'])) :'2M';
$imgsize = $_FILES['img']['size']?$_FILES['img']['size']/(1024*1024):0;
$imgwidth = $imgheight = $_POST['width-height']?intval($_POST['width-height']):300;
//Customize file upload size
ini_set('upload_max_filesize',$size);
$mathsize = str_replace ('M','',$size);
if($imgsize>$mathsize){
echo "The image size must not exceed {$size}!";
return;
}
if($file_name = _file_type($ _FILES['img']['type'])){
if($_FILES['img']['error'] == UPLOAD_ERR_OK){
$savepath = 'upload/';
if(!is_dir($ savepath)){
mkdir($savepath,0644);
}
//Generate thumbnail
$thumb_file = _make_thumb($_FILES['img']['tmp_name'], $imgwidth, $imgheight, $savepath);
//move_uploaded_file($_FILES['img']['tmp_name'],$savepath.$file_name);
echo "The generated image is: ";
}else{
echo $_FILES['img']['error'];
return;
}
}else{
echo "The image format is incorrect, please upload jpg, gif, png format!";
return;
}
}else{
echo <<
Scale the image and save it into a square
Upload a picture:
Generate the width and height of the thumbnail (in px):
Maximum file size:
EOT;
}
Copy code