当前位置 : 主页 > 网络编程 > PHP >

缩略图Thumbnail.class.php

来源:互联网 收集:自由互联 发布时间:2021-06-28
缩略图Thumbnail.class.php 'png',2='jpeg',3='gif');list($src_width,$src_height,$type) = getimagesize($fileName);self::$src_width = $src_width;self::$src_height = $src_height;self::$type = $imageType[$type];return self::$error = in_array(s
缩略图Thumbnail.class.php
 'png',2=>'jpeg',3=>'gif');
			list($src_width,$src_height,$type) = getimagesize($fileName);
			self::$src_width = $src_width;
			self::$src_height = $src_height;
			self::$type = $imageType[$type];
			return self::$error = in_array(self::$type, $imageType) ? true:"不支持该格式文件,支持的格式为:'png','jpeg','gif'";
		}

		/**
		 * [variableMethod 返回可变方法的方法名]
		 * @param  [string] $name       [可变方法名的拼接部分]
		 * @param  string $funcPrefix [可变方法名的不变部分(前缀)]
		 * @return [string]             [可变方法的方法名字符串]
		 */
		public static function variableMethod($funcPrefix='imagecreatefrom',$name){
			return $funcPrefix.$name;
		}

		/**
		 * 生成图片的随机文件名
		 * @param string $fileName 传入的文件名,带后缀名
		 * @param int $length=9 默认值为9,生成的随机字符串的长度               	
		 * @return $newFilwName 返回生成的新文件名
		 */
		public static function createNewFileName($type,$length=9){
			//获取当前时间
			$newFilwName = date("YmdHis");
			//生成随机名的一部分
			for($i=0;$i<$length;$i++){
				$newFilwName .= mt_rand(1,9);
			}
			$newFilwName .= ".".$type;
			return $newFilwName;
		}

		public static function thumbnailCreateSave($filePath,$width=100,$height=40){

			$param = func_get_args();
			$counts = count($param);

			//判断合法性
			$result = self::fileExists($filePath)?(self::fileLegal($filePath)?:false):false;
			if(!$result)return false;

			//打开文件资源
			$funcMethod = self::variableMethod('imagecreatefrom',self::$type);
			$srcImage = $funcMethod($filePath);
			if(!$srcImage)return false;

			//创建缩略图资源
			$srcTHumb = imagecreatetruecolor($width,$height);

			//采样数据
			$result &= imagecopyresampled($srcTHumb,$srcImage,0,0,0,0,$width,$height,self::$src_width,self::$src_height);
			if(!$result)return false;

			//保存输出
			$thumbnailName = self::createNewFileName(self::$type);
			$funcMethod = self::variableMethod('image',self::$type);
			

			
			if($counts==4){
				$newpath = $param[3];
				$newpath = isset($newpath) ? $newpath .= $thumbnailName :false;
				$result = $funcMethod($srcTHumb,$newpath);
			}else{	
				// 设置头信息,告诉浏览器以图片格式输出
       			header("content-type:image/png");
        		// 清屏,为图片输出创在输出环境
       			ob_clean();		 
				$result = $funcMethod($srcTHumb);
			}
			if(!$result)return false;

			//销毁资源
			imagedestroy($srcTHumb);
			imagedestroy($srcImage);

			return $newpath;
		}

	}

	//Thumbnail::createTnumbnail($filePath = './42933-106.jpg',400,100);
上一篇:bilibili.php
下一篇:ajax.php
网友评论