1. <?php  
  2.  
  3.  
  4. function cutphoto($o_photo,$d_photo,$width,$height){  
  5.  
  6. $temp_img = p_w_picpathcreatefromjpeg($o_photo);  
  7. $o_width   = p_w_picpathsx($temp_img);                                 //取得原图宽  
  8. $o_height = p_w_picpathsy($temp_img);                                 //取得原图高  
  9.  
  10. //判断处理方法  
  11. if($width>$o_width || $height>$o_height){         //原图宽或高比规定的尺寸小,进行压缩  
  12.  
  13.          $newwidth=$o_width;  
  14.          $newheight=$o_height;  
  15.  
  16.          if($o_width>$width){  
  17.                  $newwidth=$width;  
  18.                  $newheight=$o_height*$width/$o_width;  
  19.          }  
  20.  
  21.          if($newheight>$height){  
  22.                  $newwidth=$newwidth*$height/$newheight;  
  23.                  $newheight=$height;  
  24.          }  
  25.  
  26.          //缩略图片  
  27.          $new_img = p_w_picpathcreatetruecolor($newwidth$newheight);  
  28.          p_w_picpathcopyresampled($new_img$temp_img, 0, 0, 0, 0, $newwidth$newheight$o_width$o_height);  
  29.          p_w_picpathjpeg($new_img , $d_photo);                  
  30.          p_w_picpathdestroy($new_img);  
  31.  
  32.  
  33. }else{                                                                                 //原图宽与高都比规定尺寸大,进行压缩后裁剪  
  34.  
  35.          if($o_height*$width/$o_width>$height){         //先确定width与规定相同,如果height比规定大,则ok  
  36.                  $newwidth=$width;  
  37.                  $newheight=$o_height*$width/$o_width;  
  38.                  $x=0;  
  39.                  $y=($newheight-$height)/2;  
  40.          }else{                                                                         //否则确定height与规定相同,width自适应  
  41.                  $newwidth=$o_width*$height/$o_height;  
  42.                  $newheight=$height;  
  43.                  $x=($newwidth-$width)/2;  
  44.                  $y=0;  
  45.          }  
  46.  
  47.          //缩略图片  
  48.          $new_img = p_w_picpathcreatetruecolor($newwidth$newheight);  
  49.          p_w_picpathcopyresampled($new_img$temp_img, 0, 0, 0, 0, $newwidth$newheight$o_width$o_height);  
  50.          p_w_picpathjpeg($new_img , $d_photo);                  
  51.          p_w_picpathdestroy($new_img);  
  52.           
  53.          $temp_img = p_w_picpathcreatefromjpeg($d_photo);  
  54.          $o_width   = p_w_picpathsx($temp_img);                                 //取得缩略图宽  
  55.          $o_height = p_w_picpathsy($temp_img);                                 //取得缩略图高  
  56.  
  57.          //裁剪图片  
  58.          $new_imgx = p_w_picpathcreatetruecolor($width,$height);  
  59.          p_w_picpathcopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height);  
  60.          p_w_picpathjpeg($new_imgx , $d_photo);  
  61.          p_w_picpathdestroy($new_imgx);  
  62. }  
  63.  
  64. }  
  65. ?>