| 以下是源代碼: <?php /* * $o_photo 原圖路徑 * $d_photo 處理后圖片路徑 * $width 定義寬 * $height 定義高 * 調(diào)用方法 cutphoto("test.jpg","temp.jpg",256,146); */ function cutphoto($o_photo,$d_photo,$width,$height){ $temp_img = imagecreatefromjpeg($o_photo); $o_width = imagesx($temp_img); //取得原圖寬 $o_height = imagesy($temp_img); //取得原圖高 //判斷處理方法 if($width>$o_width || $height>$o_height){ //原圖寬或高比規(guī)定的尺寸小,進行壓縮 $newwidth=$o_width; $newheight=$o_height; if($o_width>$width){ $newwidth=$width; $newheight=$o_height*$width/$o_width; } if($newheight>$height){ $newwidth=$newwidth*$height/$newheight; $newheight=$height; } //縮略圖片 $new_img = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height); imagejpeg($new_img , $d_photo); imagedestroy($new_img); }else{ //原圖寬與高都比規(guī)定尺寸大,進行壓縮后裁剪 if($o_height*$width/$o_width>$height){ //先確定width與規(guī)定相同,如果height比規(guī)定大,則ok $newwidth=$width; $newheight=$o_height*$width/$o_width; $x=0; $y=($newheight-$height)/2; }else{ //否則確定height與規(guī)定相同,width自適應(yīng) $newwidth=$o_width*$height/$o_height; $newheight=$height; $x=($newwidth-$width)/2; $y=0; } //縮略圖片 $new_img = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height); imagejpeg($new_img , $d_photo); imagedestroy($new_img); $temp_img = imagecreatefromjpeg($d_photo); $o_width = imagesx($temp_img); //取得縮略圖寬 $o_height = imagesy($temp_img); //取得縮略圖高 //裁剪圖片 $new_imgx = imagecreatetruecolor($width,$height); imagecopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height); imagejpeg($new_imgx , $d_photo); imagedestroy($new_imgx); } } ?> |
新聞熱點
疑難解答