$info[0],'height'=>$info[1],'type'=>image_type_to_extension($info[2],false),'mime'=>$info['mime']);//擷取圖片資訊$type=self::$info['type'];$fun ="imagecreatefrom{$type}";self::$image = $fun($src);}/** * @param int $width $height 應該在設定檔中聲明使用,可取消參數 * @return 縮圖 圖片資源 * 縮圖的形成與使用 */public function thumb($width ,$height){//建立鎮色彩圖片$image_thumb =imagecreatetruecolor($width ,$height);#擷取圖片的寬高比$src_m = self::$info['width'] / self::$info['height']; #源檔案空格比$dst_m = $width / $height; #縮圖寬高比#源檔案圖片是 N:1 型的 寬不變, 改變高if($src_m > $dst_m ){$cha_width = $width;$cha_height = ceil($width / $src_m) ; }else{#源檔案圖片是 1:N 型的 高不變,改變寬$cha_width = floor($height * $src_m) ;$cha_height = $height ;}#對縮圖的其實位置進行重設$dst_x = ($width - $cha_width) /2 ;$dst_y = ($height - $cha_height) /2 ;imagecopyresampled($image_thumb ,self::$image , $dst_x , $dst_y ,0 , 0, $cha_width , $cha_height ,self::$info['width'],self::$info['height']);#產生縮圖self::$image =$image_thumb;// #顯示縮圖圖片// self::show(self::$image);#儲存縮圖self::save(self::getNewName());//銷毀圖片imagedestroy($this->image_thumb);#返回縮圖名字return self::getNewName();}#浮水印的產生座標private static function setLocal($pos){#對 pos 參數進行判斷 , 指定相應的浮水印產生座標#浮水印圖片在config 檔案中記錄 $conf['mark']switch ($pos) {case 1:$x = 0;$y = 0;break ;case 2:default:$x = self::$info['width']-50;$y = self::$info['height']-50; #不該是20 這個定製, 應該改成浮水印圖片的寬高}return $local=array('x' => $x ,'y'=>$y);}#添加文字浮水印public function fontMark($content ,$font_url ,$size,$angle){#字型顏色$col = imagecolorallocatealpha(self::$image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255),20);#擷取浮水印輸出位置座標$local = self::setLocal(2);imagettftext(self::$image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content);#顯示縮圖圖片self::show(self::$image);#儲存文字浮水印 沒有添加儲存路徑self::save(self::getNewName());#返回浮水印圖片的名字return self::getNewName(); }#添加圖片浮水印public function imageMark($url ,$alpha){$info= getimagesize($url); #擷取圖片資訊$type=image_type_to_extension($info[2],false);$fun = "imagecreatefrom{$type}";#擷取浮水印輸出位置座標$local = self::setLocal(2);$water = $fun($url); #浮水印圖片imagecopymerge(self::$image, $water, $local['x'], $local['y'],0 , 0,$info[0] , $info[1], 30);#銷毀圖片浮水印imagedestroy($water);#顯示縮圖圖片self::show(self::$image);#儲存圖片浮水印 沒有添加儲存路徑self::save(self::getNewName());#返回浮水印圖片的名字return self::getNewName();}#產生隨機的 圖片名字/** * @return string 返回一個新的名字 * */private static function getNewName(){#擷取一個時間$str = time();#擷取隨機字串$string = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOASDFGHJKZXCVBNM1234567890";for($i=0 ; $i<6 ; $i++){$str .= $string[mt_rand(0 , strlen($string)-1)];}return $str.self::$info['type'];}#在瀏覽器中輸出圖片private static function show(){header("content-type:".self::$info['mime']);$funs ="image".self::$info['type'];$funs(self::$image);}#把圖片儲存到硬碟private static function save($newname){$funs="image".self::$info['type'];$funs(self::$image,$newname.".".self::$info['type']); #在此處加入設定檔的組建目錄}#銷毀圖片public function __destruct(){imagedestroy(self::$image);}}
以上就介紹了圖片處理類 (改進版),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。