PHP实现图片不变型裁剪及图片按比例裁剪的方法
本文实例讲述了PHP实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考,具体如下:
图片不变型裁剪
<?php /** *imageCropper *@paramstring$source_path *@paramstring$target_width *@paramstring$target_height */ functionimageCropper($source_path,$target_width,$target_height){ $source_info=getimagesize($source_path); $source_width=$source_info[0]; $source_height=$source_info[1]; $source_mime=$source_info['mime']; $source_ratio=$source_height/$source_width; $target_ratio=$target_height/$target_width; if($source_ratio>$target_ratio){ //image-to-height $cropped_width=$source_width; $cropped_height=$source_width*$target_ratio; $source_x=0; $source_y=($source_height-$cropped_height)/2; }elseif($source_ratio<$target_ratio){ //image-to-widht $cropped_width=$source_height/$target_ratio; $cropped_height=$source_height; $source_x=($source_width-$cropped_width)/2; $source_y=0; }else{ //image-size-ok $cropped_width=$source_width; $cropped_height=$source_height; $source_x=0; $source_y=0; } switch($source_mime){ case'image/gif': $source_image=imagecreatefromgif($source_path); break; case'image/jpeg': $source_image=imagecreatefromjpeg($source_path); break; case'image/png': $source_image=imagecreatefrompng($source_path); break; default: return; break; } $target_image=imagecreatetruecolor($target_width,$target_height); $cropped_image=imagecreatetruecolor($cropped_width,$cropped_height); //copy imagecopy($cropped_image,$source_image,0,0,$source_x,$source_y,$cropped_width,$cropped_height); //zoom imagecopyresampled($target_image,$cropped_image,0,0,0,0,$target_width,$target_height,$cropped_width,$cropped_height); header('Content-Type:image/jpeg'); imagejpeg($target_image); imagedestroy($source_image); imagedestroy($target_image); imagedestroy($cropped_image); } $filename="8fcb7a0831b79c61.jpg"; imageCropper($filename,200,200); ?>
图片按比例裁剪
<?php /** *imageZoom *@paramstring$file *@paramdouble$zoom */ functionimageZoom($filename,$zoom=0.6){ //baseinfo $sourceImageInfo=getimagesize($filename); $sourceWidth=$sourceImageInfo[0]; $sourceHeight=$sourceImageInfo[1]; $sourceMine=$sourceImageInfo['mime']; $sourceRatio=$sourceWidth/$sourceHeight; $sourceX=0; $sourceY=0; //zoom $targetRatio=$zoom; //target-widht-height $targetWidth=$sourceWidth*$targetRatio; $targetHeight=$sourceHeight*$targetRatio; //init-params $sourceImage=null; switch($sourceMine){ case'image/gif': $sourceImage=imagecreatefromgif($filename); break; case'image/jpeg': $sourceImage=imagecreatefromjpeg($filename); break; case'image/png': $sourceImage=imagecreatefrompng($filename); break; default: return; break; } //temp-target-image $tempSourceImage=imagecreatetruecolor($sourceWidth,$sourceHeight); $targetImage=imagecreatetruecolor($targetWidth,$targetHeight); //copy imagecopy($tempSourceImage,$sourceImage,0,0,$sourceX,$sourceY,$sourceWidth,$sourceHeight); //zoom imagecopyresampled($targetImage,$tempSourceImage,0,0,0,0,$targetWidth,$targetHeight,$sourceWidth,$sourceHeight); //header header('Content-Type:image/jpeg'); //image-loading imagejpeg($targetImage); //destroy imagedestroy($tempSourceImage); imagedestroy($sourceImage); imagedestroy($targetImage); } $filename="8fcb7a0831b79c61.jpg"; imageZoom($filename); ?>
希望本文所述对大家PHP程序设计有所帮助。