Home > Backend Development > PHP Tutorial > PHP缩略图类

PHP缩略图类

WBOY
Release: 2016-06-23 13:24:59
Original
903 people have browsed it

<?php//缩略图类class Thumb{	public static $thumb_prefix = '';//缩略图前缀	public static $thumb_savePath = '';//缩略图保存路径	public static $thumb_width = '';//缩略图宽度	public static $thumb_height = '';//缩略图高度		public static function save($sPath){//保存为缩略图,传入一个实参		$imgArr = self::getImageInfo($sPath);//获取图片信息		if (is_array($imgArr)) {			//将三个静态属性以逗号为分隔拆分为数组,实现多张缩略图的生成			$thumb_prefix_arr = explode(',', self::$thumb_prefix);			$thumb_width_arr = explode(',', self::$thumb_width);			$thumb_height_arr = explode(',', self::$thumb_height);			$countP = count($thumb_prefix_arr);			$countW = count($thumb_width_arr);			$countH = count($thumb_height_arr);			if ($countP>0 && $countP==$countW && $countW==$countH) {				//遍历一个数组,生成多张缩略图				$reArr = array();				foreach ($thumb_prefix_arr as $key=>$value){					//生成空白画布并填充颜色					$image = imagecreatetruecolor($thumb_width_arr[$key], $thumb_height_arr[$key]);					$color = imagecolorallocate($image, 255, 255, 255);//白色					imagefill($image, 0, 0, $color);					//计算出缩略比例					$width_scale = $imgArr['width']/$thumb_width_arr[$key];//宽比					$height_scale = $imgArr["height"]/$thumb_height_arr[$key];//高比					$scale = $width_scale>$height_scale ? $width_scale : $height_scale;					//计算缩略图宽高					$width = $imgArr["width"]/$scale;					$height = $imgArr["height"]/$scale;					//到目标图片的位置					$dst_x = ($thumb_width_arr[$key]-$width)/2;					$dst_y = ($thumb_height_arr[$key]-$height)/2;					//获取原始图片资源并拷贝					$src_image = $imgArr["createFunName"]($sPath);//获取原始图片资源					imagecopyresized($image, $src_image, $dst_x, $dst_y, 0, 0, $width, $height, $imgArr["width"], $imgArr["height"]);					//保存并返回值					$re = $imgArr['saveFunName']($image,self::$thumb_savePath.'/'.$thumb_prefix_arr[$key].$imgArr['name']);					$reArr[$key] = $re;				}				//销毁缩略图资源及原图片资源,释放内存				imagedestroy($image);				imagedestroy($src_image);				return $reArr;//返回数组			}else{				return false;			}		}else{			return false;		}	}		protected static function getImageInfo($path){		if (is_file($path)) {			$imgArr = getimagesize($path);			if (is_array($imgArr)) {//如果$imgArr是一个数组,则说明$path是一个真实图片				//判断不同的图片类型,使用变量函数,生成图片资源:$createFunName,保存图片资源:$saveFunName				switch ($imgArr['mime']){					case 'image/jpeg':					case 'image/pjpeg':						$createFunName = 'imagecreatefromjpeg';						$saveFunName = 'imagejpeg';						break;					case 'image/png':						$createFunName = 'imagecreatefrompng';						$saveFunName = 'imagepng';						break;					case 'image/gif':						$createFunName = 'imagecreatefromgif';						$saveFunName = 'imagegif';						break;					default:						return false;										}				//获取原图片名称				$oldName = pathinfo($path,PATHINFO_BASENAME);				//返回图片信息数组				return array(						'name'=>$oldName,						'type'=>$imgArr['mime'],						'width'=>$imgArr[0],						'height'=>$imgArr[1],						'createFunName'=>$createFunName,						'saveFunName'=>$saveFunName				);			}		}else{			return false;		}	}}
Copy after login


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template