PHP缩略图类

php中文网
发布: 2016-06-23 13:24:59
原创
1188人浏览过

<?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;		}	}}
登录后复制


炫图AI
炫图AI

全能AI修图神器,AI换装、修图、改图、P图

炫图AI 193
查看详情 炫图AI
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号