| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- <?php
 
- //裁剪图片
 
- function DoCropImage($add,$userid,$username){
 
- 	global $empire,$dbtbpre,$public_r,$class_r,$ecms_config,$efileftp_fr,$efileftp_dr;
 
- 	//参数处理
 
- 	$pic_x=(int)$add['pic_x'];
 
- 	$pic_y=(int)$add['pic_y'];
 
- 	$pic_w=(int)$add['pic_w'];
 
- 	$pic_h=(int)$add['pic_h'];
 
- 	$doing=(int)$add['doing'];
 
- 	$fileid=(int)$add['fileid'];
 
- 	$filepass=(int)$add['filepass'];
 
- 	$classid=(int)$add['classid'];
 
- 	$infoid=(int)$add['infoid'];
 
- 	$modtype=(int)$add['modtype'];
 
- 	$fstb=0;
 
- 	if(empty($modtype))
 
- 	{
 
- 		$fstb=GetInfoTranFstb($classid,$infoid,0);
 
- 	}
 
- 	//取得文件地址
 
- 	if(empty($fileid))
 
- 	{
 
- 		printerror('NotCropImage','history.go(-1)');
 
- 	}
 
- 	$filer=$empire->fetch1("select fileid,path,filename,classid,fpath,no from ".eReturnFileTable($modtype,$fstb)." where fileid='$fileid'");
 
- 	if(empty($filer['fileid']))
 
- 	{
 
- 		printerror('NotCropImage','history.go(-1)');
 
- 	}
 
- 	$path=$filer['path']?$filer['path'].'/':$filer['path'];
 
- 	$fspath=ReturnFileSavePath($filer['classid'],$filer['fpath']);
 
- 	$big_image_name=eReturnEcmsMainPortPath().$fspath['filepath'].$path.$filer['filename'];//moreport
 
- 	if(!file_exists($big_image_name))
 
- 	{
 
- 		printerror('NotCropImage','history.go(-1)');
 
- 	}
 
- 	$filetype=GetFiletype($filer['filename']);//取得文件类型
 
- 	if(!strstr($ecms_config['sets']['tranpicturetype'],','.$filetype.','))
 
- 	{
 
- 		printerror('CropImageFiletypeFail','history.go(-1)');
 
- 	}
 
- 	//目标图片
 
- 	$new_datepath=FormatFilePath($filer['classid'],'',0);
 
- 	$new_path=$new_datepath?$new_datepath.'/':$new_datepath;
 
- 	$new_insertfile=ReturnDoTranFilename($filer['filename'],0);
 
- 	$new_fspath=ReturnFileSavePath($filer['classid']);
 
- 	$new_savepath=eReturnEcmsMainPortPath().$new_fspath['filepath'].$new_path;//moreport
 
- 	$new_name=$new_savepath.$new_insertfile;
 
- 	//处理图片
 
- 	$returnr['file']='';
 
- 	$returnr['filetype']='';
 
-     if($temp_img_type = @getimagesize($big_image_name)) {preg_match('/\/([a-z]+)$/i', $temp_img_type[mime], $tpn); $img_type = $tpn[1];}
 
-     else {preg_match('/\.([a-z]+)$/i', $big_image_name, $tpn); $img_type = $tpn[1];}
 
-     $all_type = array(
 
-         "jpg"   => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"  , "exn"=>".jpg"),
 
-         "gif"   => array("create"=>"ImageCreateFromGIF" , "output"=>"imagegif"   , "exn"=>".gif"),
 
-         "jpeg"  => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"  , "exn"=>".jpg"),
 
-         "png"   => array("create"=>"imagecreatefrompng" , "output"=>"imagepng"   , "exn"=>".png"),
 
-         "wbmp"  => array("create"=>"imagecreatefromwbmp", "output"=>"image2wbmp" , "exn"=>".wbmp")
 
-     );
 
-     $func_create = $all_type[$img_type]['create'];
 
-     if(empty($func_create) or !function_exists($func_create)) 
 
- 	{
 
- 		printerror('CropImageFiletypeFail','history.go(-1)');
 
- 	}
 
- 	//输出
 
-     $func_output = $all_type[$img_type]['output'];
 
-     $func_exname = $all_type[$img_type]['exn'];
 
- 	if(($func_exname=='.gif'||$func_exname=='.png'||$func_exname=='.wbmp')&&!function_exists($func_output))
 
- 	{
 
- 		$func_output='imagejpeg';
 
- 		$func_exname='.jpg';
 
- 	}
 
-     $big_image   = $func_create($big_image_name);
 
-     $big_width   = imagesx($big_image);
 
-     $big_height  = imagesy($big_image);
 
-     if(!$big_width||!$big_height||$big_width<10||$big_height<10) 
 
- 	{ 
 
- 		printerror('CropImageFilesizeFail','history.go(-1)');
 
- 	}
 
-     if(function_exists("imagecopyresampled"))
 
-     {
 
-         $temp_image=imagecreatetruecolor($pic_w,$pic_h);
 
-         imagecopyresampled($temp_image, $big_image, 0, 0, $pic_x, $pic_y, $pic_w, $pic_h, $pic_w, $pic_h);
 
-     }
 
- 	else
 
- 	{
 
-         $temp_image=imagecreate($pic_w,$pic_h);
 
-         imagecopyresized($temp_image, $big_image, 0, 0, $pic_x, $pic_y, $pic_w, $pic_h, $pic_w, $pic_h);
 
-     }
 
-     $func_output($temp_image, $new_name.$func_exname);
 
-     ImageDestroy($big_image);
 
-     ImageDestroy($temp_image);
 
- 	$insert_file=$new_name.$func_exname;
 
- 	$insert_filename=$new_insertfile.$func_exname;
 
- 	if(file_exists($insert_file))
 
- 	{
 
- 		if(!$doing)
 
- 		{
 
- 			$empire->query("delete from ".eReturnFileTable($modtype,$fstb)." where fileid='$fileid'");
 
- 			DelFiletext($big_image_name);
 
- 			//FileServer
 
- 			if($public_r['openfileserver'])
 
- 			{
 
- 				$efileftp_dr[]=$big_image_name;
 
- 			}
 
- 		}
 
- 		//写入数据库
 
- 		$no='[CropImg]'.$filer['no'];
 
- 		$filesize=filesize($insert_file);
 
- 		$filesize=(int)$filesize;
 
- 		$classid=(int)$classid;
 
- 		$type=1;
 
- 		eInsertFileTable($insert_filename,$filesize,$new_datepath,$username,$classid,$no,$type,$filepass,$filepass,$public_r[fpath],0,$modtype,$fstb);
 
- 		//FileServer
 
- 		if($public_r['openfileserver'])
 
- 		{
 
- 			$efileftp_fr[]=$insert_file;
 
- 		}
 
- 	}
 
- 	echo"<script>opener.ReloadChangeFilePage();window.close();</script>";
 
- 	db_close();
 
- 	exit();
 
- }
 
- ?>
 
 
  |