圖片處理類 (改進版)

來源:互聯網
上載者:User
$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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.