本文实例讲述了PHP实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考,具体如下:
图片不变型裁剪<?php/** * imageCropper * @param string $source_path * @param string $target_width * @param string $target_height */function imageCropper($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);// copyimagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);// zoomimagecopyresampled($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 * @param string $file * @param double $zoom */function imageZoom($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);//copyimagecopy($tempSourceImage, $sourceImage, 0, 0, $sourceX, $sourceY, $sourceWidth, $sourceHeight);//zoomimagecopyresampled($targetImage, $tempSourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight);//headerheader("Content-Type: image/jpeg");//image-loadingimagejpeg($targetImage);//destroyimagedestroy($tempSourceImage);imagedestroy($sourceImage);imagedestroy($targetImage);}$filename = "8fcb7a0831b79c61.jpg";imageZoom($filename);?>希望本文所述对大家PHP程序设计有所帮助。