时间:2021-07-01 10:21:17 帮助过:23人阅读
$x1 = $_POST["x1"];
$x2 = $_POST["x2"];
$y1 = $_POST["y1"];
$y2 = $_POST["y2"];
$targ_w = $_POST["w"];
$targ_h = $_POST["h"];
if ($_FILES["mfile"]["error"]){echo "error: " . $_FILES["file"]["error"];}
if (!empty($_FILES["mfile"]["name"])){ //提取文件域内容名称,并判断
$path = "/upload/user/photo/"; //上传路径
//检查是否有该文件夹,如果没有就创建,并给予最高权限
//if(!file_exists($path)){mkdir("$path", 0700);}
//允许上传的文件格式
$allow_type = array("image/gif","image/pjpeg","image/jpeg","image/png");
//检查上传文件是否在允许上传的类型
if(!in_array($_FILES["mfile"]["type"], $allow_type)){echo "error:格式有误,仅支持gif/jpg/png"; exit();}
//检测图片大小
if($_FILES["mfile"]["size"] > 5*1024*1024){echo "error:文件不得超过5M"; exit();}
$filetype = $_FILES["mfile"]["type"];
if($filetype == "image/jpeg"){
$img_type = ".jpg";
}
if ($filetype == "image/jpg") {
$img_type = ".jpg";
}
if ($filetype == "image/pjpeg") {
$img_type = ".jpg";
}
if($filetype == "image/gif"){
$img_type = ".gif";
}
if($filetype == "image/png"){
$img_type = ".png";
}
if($_FILES["mfile"]["name"])
{
$randstr = random_str().date("YmdHis"); //获取时间并赋值给变量
$saveto = $_SERVER['DOCUMENT_ROOT'].$path.$randstr.$img_type; //图片的完整路径
$newimg = $randstr.$img_type; //图片名称
$flag=1;
}
//END IF
if ($flag){$result = move_uploaded_file($_FILES["mfile"]["tmp_name"], $saveto);}
//特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件
$src_file = $saveto;
}}
$type = exif_imagetype($src_file);
$support_type = array(IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);
if(!in_array($type, $support_type, true)){echo "error:当前图片格式非JPG/PNG/GIF";exit();}
//Load image
switch($type) {
case IMAGETYPE_JPEG :
$src_img = imagecreatefromjpeg($src_file);
break;
case IMAGETYPE_PNG :
$src_img = imagecreatefrompng($src_file);
break;
case IMAGETYPE_GIF :
$src_img = imagecreatefromgif($src_file);
break;
default:
echo "Load image error!";
exit();
}
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
list($width_orig, $height_orig) = getimagesize($src_file);
//if ($width_orig > 680){
//$new_width_orig = 680;
//$new_height_orig = ($height_orig*680)/$width_orig;
//}
//else {
//$new_width_orig = $targ_w;
//$new_height_orig = $targ_h;
//}
//echo $new_width_orig."
";
//echo $new_height_orig."
";
//echo "x:".$x1."
";
//echo "y:".$y1;
//exit();
imagecopyresampled($dst_r, $src_img, 0, 0, $x1, $y1, $targ_w, $targ_h, $targ_w, $targ_h);
//imagecopyresampled($dst_r, $src_img, 0, 0, $x1, $y1, $targ_w, $targ_h, $targ_w, $targ_h);
switch($type) {
case IMAGETYPE_JPEG :
header('Content-type: image/jpeg');
imagejpeg($dst_r, null, 100);
break;
case IMAGETYPE_PNG :
header('Content-type: image/png');
imagepng($dst_r, null, 100);
break;
case IMAGETYPE_GIF :
header('Content-type: image/gif');
imagegif($dst_r, null, 100);
break;
default:
break;
}
echo "";
exit;
/** 获取目标图生成的size
* @return Array $width, $height
*/
private function get_size(){
list($owidth, $oheight) = getimagesize($this->_source);
$width = (int)($this->_width);
$height = (int)($this->_height);
switch($this->_type){
case 'fit':
$pic_w = $width;
$pic_h = (int)($pic_w*$oheight/$owidth);
if($pic_h>$height){
$pic_h = $height;
$pic_w = (int)($pic_h*$owidth/$oheight);
}
break;
case 'crop':
$pic_w = $width;
$pic_h = (int)($pic_w*$oheight/$owidth);
if($pic_h<$height){
$pic_h = $height;
$pic_w = (int)($pic_h*$owidth/$oheight);
}
break;
}
return array($pic_w, $pic_h);
}