首页 > php学习 > php自动裁剪图片,根据指定大小裁剪居中缩略图

php自动裁剪图片,根据指定大小裁剪居中缩略图

2020年3月12日 发表评论 阅读评论
function image_center_crop($source,$target,$width,$height,$quality=100){
		if(!is_file($source)) {return false;}
		/* 根据类型载入图像 */
		switch(exif_imagetype($source)){
			case IMAGETYPE_JPEG:$image=imagecreatefromjpeg($source);break;
			case IMAGETYPE_PNG:$image=imagecreatefrompng($source);break;
			case IMAGETYPE_GIF:$image=imagecreatefromgif($source);break;
		}
		if(!isset($image)) {return false;}
		/* 获取图像尺寸信息 */
		$target_w=$width;
		$target_h=$height;
		$source_w=imagesx($image);
		$source_h=imagesy($image);
		/* 计算裁剪宽度和高度 */
		$judge=(($source_w/$source_h)>($target_w/$target_h));
		$resize_w=$judge?($source_w * $target_h)/$source_h:$target_w;
		$resize_h=!$judge?($source_h * $target_w)/$source_w:$target_h;
		$start_x=$judge?($resize_w-$target_w)/2:0;
		$start_y=!$judge?($resize_h-$target_h)/2:0;
		
		/* 绘制居中缩放图像 */
		$resize_img=imagecreatetruecolor($resize_w,$resize_h);
		imagecopyresampled($resize_img,$image, 0, 0, 0, 0,$resize_w,$resize_h,$source_w,$source_h);
		$target_img=imagecreatetruecolor($target_w,$target_h);
		imagecopy($target_img,$resize_img, 0, 0,$start_x,$start_y,$resize_w,$resize_h);
		/* 将图片保存至文件 */
		if(!file_exists(dirname($target))) mkdir(dirname($target),0777,true);
		imagejpeg($target_img,$target,$quality);
		return is_file($target);
	}

以上php代码可以实现php自动裁剪图片,根据指定大小裁剪居中缩略图。

分类: php学习 标签: , ,
  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.
css.php