国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php圖片水印添加,壓縮,剪切的封裝類(lèi)實(shí)現(xiàn)

2024-05-04 23:38:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了php圖片水印添加,壓縮,剪切的封裝類(lèi)實(shí)現(xiàn)方法,需要的朋友可以參考下
 

php對(duì)圖片文件的操作主要是利用GD庫(kù)擴(kuò)展。當(dāng)我們頻繁利用php對(duì)圖片進(jìn)行操作時(shí),會(huì)自然封裝很多函數(shù),否則會(huì)寫(xiě)太多重復(fù)的代碼。當(dāng)有很多對(duì)圖片的相關(guān)函數(shù)的時(shí)候,我們可以考慮將這些函數(shù)也整理一下,因而就有了封裝成類(lèi)的想法。
操作圖片主要?dú)v經(jīng)四個(gè)步驟
1、打開(kāi)圖片
2、操作圖片
3、輸出圖片
4、銷(xiāo)毀圖片

1,3,4三個(gè)步驟每次都要寫(xiě),每次又都差不多。真正需要變通的只有操作圖片的這一步驟了。操作圖片又往往通過(guò)1或多個(gè)主要的GD函數(shù)來(lái)完成。
 

  1. <?php  
  2.  
  3. class Image 
  4. {   
  5.   private $info
  6.  
  7.   private $image
  8.   public $type
  9.   public function __construct($src
  10.   { 
  11.  
  12.     $this->info=getimagesize($src); 
  13.     $this->type=image_type_to_extension($this->info['2'],false); 
  14.     $fun="imagecreatefrom{$this->type}"
  15.     $this->image=$fun($src); 
  16.   } 
  17.   /** 
  18.    * 文字水印 
  19.    * @param [type] $font   字體 
  20.    * @param [type] $content 內(nèi)容 
  21.    * @param [type] $size   文字大小 
  22.    * @param [type] $col   文字顏色(四元數(shù)組) 
  23.    * @param array  $location 位置  
  24.    * @param integer $angle  傾斜角度 
  25.    * @return [type]       
  26.    */ 
  27.   public function fontMark($font,$content,$size,$col,$location,$angle=0){ 
  28.     $col=imagecolorallocatealpha($this->image, $col['0'], $col['1'], $col['2'],$col['3']); 
  29.  
  30.     imagettftext($this->image, $size$angle$location['0'], $location['1'], $col,$font,$content); 
  31.   } 
  32.    
  33.   /** 
  34.    * 圖片水印 
  35.    * @param [type] $imageMark 水印圖片地址 
  36.    * @param [type] $dst    水印圖片在原圖片中的位置 
  37.    * @param [type] $pct    透明度 
  38.    * @return [type]       
  39.    */ 
  40.   public function imageMark($imageMark,$dst,$pct){ 
  41.     $info2=getimagesize($imageMark); 
  42.     $type=image_type_to_extension($info2['2'],false); 
  43.     $func2="imagecreatefrom".$type
  44.     $water=$func2($imageMark); 
  45.  
  46.     imagecopymerge($this->image, $water$dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct); 
  47.     imagedestroy($water); 
  48.  
  49.   } 
  50.   /** 
  51.    * 壓縮圖片 
  52.    * @param [type] $thumbSize 壓縮圖片大小 
  53.    * @return [type]      [description] 
  54.    */ 
  55.   public function thumb($thumbSize){ 
  56.     $imageThumb=imagecreatetruecolor($thumbSize[0], $thumbSize[1]); 
  57.      
  58.     imagecopyresampled($imageThumb$this->image, 0, 0, 0, 0, $thumbSize[0], $thumbSize[1], $this->info['0'], $this->info['1']); 
  59.     imagedestroy($this->image); 
  60.     $this->image=$imageThumb
  61.   } 
  62.   /** 
  63.   * 裁剪圖片 
  64.    * @param [type] $cutSize 裁剪大小 
  65.    * @param [type] $location 裁剪位置 
  66.    * @return [type]      [description] 
  67.    */ 
  68.    public function cut($cutSize,$location){ 
  69.      $imageCut=imagecreatetruecolor($cutSize[0],$cutSize[1]); 
  70.  
  71.      imagecopyresampled($imageCut$this->image, 0, 0, $location[0], $location[1],$cutSize[0],$cutSize[1],$cutSize[0],$cutSize[1]); 
  72.      imagedestroy($this->image); 
  73.      $this->image=$imageCut
  74.    } 
  75.   /** 
  76.    * 展現(xiàn)圖片 
  77.    * @return [type] [description] 
  78.    */ 
  79.   public function show(){ 
  80.     header("content-type:".$this->info['mime']); 
  81.  
  82.     $funn="image".$this->type; 
  83.  
  84.     $funn($this->image); 
  85.   } 
  86.   /** 
  87.    * 保存圖片 
  88.  * @param [type] $newname 新圖片名 
  89.  * @return [type]     [description] 
  90.  */ 
  91.    public function save($newname){ 
  92.      header("content-type:".$this->info['mime']); 
  93.  
  94.      $funn="image".$this->type; 
  95.  
  96.      $funn($this->image,$newname.'.'.$this->type); 
  97.    } 
  98.    public function __destruct(){ 
  99.      imagedestroy($this->image); 
  100.    } 
  101.  
  102.  } 
  103.  
  104.  ?> 
?
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 遵义县| 新龙县| 古浪县| 东至县| 磴口县| 浪卡子县| 墨玉县| 德昌县| 菏泽市| 上林县| 荔浦县| 盐津县| 宜春市| 赤壁市| 正定县| 彰化县| 政和县| 佳木斯市| 翁牛特旗| 太湖县| 弥渡县| 襄垣县| 益阳市| 土默特右旗| 晋州市| 乌拉特前旗| 保康县| 仁布县| 嫩江县| 渭源县| 甘洛县| 泾川县| 清水县| 白沙| 长岭县| 错那县| 温州市| 巴林左旗| 长沙市| 抚远县| 亳州市|