您好,欢迎访问一九零五行业门户网

php gd库实现图片大小裁剪与缩放

//图片裁剪、缩放函数//$filepath图片路径,$percent缩放百分比function imagepress($filepath,$percent='0.5'){// 图片类型header('content-type: image/jpeg');// 获得新的图片大小list($width, $height) = getimagesize($filepath);$new_width = $width * $percent;$new_height = $height * $percent;// 重新取样$image_p = imagecreatetruecolor($new_width, $new_height);$image = imagecreatefromjpeg($filepath);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);// 输出return imagejpeg($image_p, null, 100);}
复制代码
原图:
效果图:
例子:
//$filepath图片路径,$new_width新的宽度,$new_height新的高度
function imagepress($filepath, $new_width, $new_height){$source_info = getimagesize($filepath);$source_width = $source_info[0];$source_height = $source_info[1];$source_mime = $source_info['mime'];$source_ratio = $source_height / $source_width;$target_ratio = $new_height / $new_width;// 源图过高
if ($source_ratio > $target_ratio){$cropped_width = $source_width;$cropped_height = $source_width * $target_ratio;$source_x = 0;$source_y = ($source_height - $cropped_height) / 2;}// 源图过宽elseif ($source_ratio {$cropped_width = $source_height / $target_ratio;$cropped_height = $source_height;$source_x = ($source_width - $cropped_width) / 2;$source_y = 0;}// 源图适中else{$cropped_width = $source_width;$cropped_height = $source_height;$source_x = 0;$source_y = 0;}switch ($source_mime){case 'image/gif':$source_image = imagecreatefromgif($filepath);break;case 'image/jpeg':$source_image = imagecreatefromjpeg($filepath);break;case 'image/png':$source_image = imagecreatefrompng($filepath);break;default:return false;break;}$target_image = imagecreatetruecolor($new_width, $new_height);$cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);// 裁剪imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);// 缩放imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $new_width, $new_height, $cropped_width, $cropped_height);header('content-type: image/jpeg');imagejpeg($target_image);imagedestroy($source_image);imagedestroy($target_image);imagedestroy($cropped_image);}
复制代码
其它类似信息

推荐信息