1 <?php 2 //图像等比例缩放函数 3 /** 4 *等比例缩放函数(以保存新图片的方式实现) 5 *@param string $picname 被缩放的处理图片源 6 *@param int $maxx 缩放后图片的最大宽度 7 *@param int $maxy 缩放后图片的最大高度 8 *@param string $pre 缩放后图片的前缀名 9 *@return $string 返回后的图片名称() 如a.jpg->s.jpg 10 * 11 **/ 12 function imageUpdatesize($picname,$maxx=100,$maxy=100,$pre="s_"){ 13 $info=getimageSize($picname);//获取图片的基本信息 14 $w=$info[0];//获取宽度 15 $h=$info[1];//获取高度 16 //获取图片的类型并为此创建对应图片资源 17 switch($info[2]){ 18 case 1://gif 19 $im=imagecreatefromgif($picname); 20 break; 21 case 2://jpg 22 $im=imagecreatefromjpeg($picname); 23 break; 24 case 3://png 25 $im=imagecreatefrompng($picname); 26 break; 27 default: 28 die("图像类型错误"); 29 } 30 //计算缩放比例 31 if(($maxx/$w)>($maxy/$h)){ 32 $b=$maxy/$h; 33 }else{ 34 $b=$maxx/$w; 35 } 36 //计算出缩放后的尺寸 37 $nw=floor($w*$b); 38 $nh=floor($h*$b); 39 //创建一个新的图像源(目标图像) 40 $nim=imagecreatetruecolor($nw,$nh); 41 //执行等比缩放 42 imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h); 43 //输出图像(根据源图像的类型,输出为对应的类型) 44 $picinfo=pathinfo($picname);//解析源图像的名字和路径信息 45 $newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"]; 46 switch($info[2]){ 47 case 1: 48 imagegif($nim,$newpicname); 49 break; 50 case 2: 51 imagejpeg($nim,$newpicname); 52 break; 53 case 3: 54 imagepng($nim,$newpicname); 55 break; 56 57 } 58 //释放图片资源 59 imagedestroy($im); 60 imagedestroy($nim); 61 //返回结果 62 return $newpicname; 63 } 64 // 测试成功 65 echo imageUpdatesize("images/qie.jpg",150,150,ss_); // 返回的结果为 images/ss_qie.jpg 66 ?>