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

首頁 > 開發 > PHP > 正文

PHP添加圖片水印、壓縮、剪切的封裝類

2024-05-04 22:35:14
字體:
來源:轉載
供稿:網友

給圖片添加水印,其實就是把原來的圖片和水印添加在一起,下面小編把最近整理的資料分享給大家。

php對圖片文件的操作主要是利用GD庫擴展。當我們頻繁利用php對圖片進行操作時,會自然封裝很多函數,否則會寫太多重復的代碼。當有很多對圖片的相關函數的時候,我們可以考慮將這些函數也整理一下,因而就有了封裝成類的想法。

  操作圖片主要歷經四個步驟:

        第一步:打開圖片

        第二步:操作圖片

        第三步:輸出圖片

        第四步:銷毀圖片

  1,3,4三個步驟每次都要寫,每次又都差不多。真正需要變通的只有操作圖片的這一步驟了。操作圖片又往往通過1或多個主要的GD函數來完成。

  本文封裝類里面的四種方法,文字水印(imagettftext()),圖片水印(imagecopymerge()),圖片壓縮,圖片剪切(imagecopyresampled()),其余的常用GD函數便不贅述。

直接上代碼:

<?php class Image{  private $info; private $image; public $type; public function __construct($src) {  $this->info=getimagesize($src);  $this->type=image_type_to_extension($this->info['2'],false);  $fun="imagecreatefrom{$this->type}";  $this->image=$fun($src); } /**  * 文字水印  * @param [type] $font  字體  * @param [type] $content 內容  * @param [type] $size  文字大小  * @param [type] $col  文字顏色(四元數組)  * @param array $location 位置   * @param integer $angle 傾斜角度  * @return [type]     */ public function fontMark($font,$content,$size,$col,$location,$angle=0){  $col=imagecolorallocatealpha($this->image, $col['0'], $col['1'], $col['2'],$col['3']);  imagettftext($this->image, $size, $angle, $location['0'], $location['1'], $col,$font,$content); } /**  * 圖片水印  * @param [type] $imageMark 水印圖片地址  * @param [type] $dst  水印圖片在原圖片中的位置  * @param [type] $pct  透明度  * @return [type]     */ public function imageMark($imageMark,$dst,$pct){  $info2=getimagesize($imageMark);  $type=image_type_to_extension($info2['2'],false);  $func2="imagecreatefrom".$type;  $water=$func2($imageMark);  imagecopymerge($this->image, $water, $dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct);  imagedestroy($water); } /**  * 壓縮圖片  * @param [type] $thumbSize 壓縮圖片大小  * @return [type]   [description]  */ public function thumb($thumbSize){  $imageThumb=imagecreatetruecolor($thumbSize[0], $thumbSize[1]);  imagecopyresampled($imageThumb, $this->image, 0, 0, 0, 0, $thumbSize[0], $thumbSize[1], $this->info['0'], $this->info['1']);  imagedestroy($this->image);  $this->image=$imageThumb; } /** * 裁剪圖片  * @param [type] $cutSize 裁剪大小  * @param [type] $location 裁剪位置  * @return [type]   [description]  */  public function cut($cutSize,$location){   $imageCut=imagecreatetruecolor($cutSize[0],$cutSize[1]);   imagecopyresampled($imageCut, $this->image, 0, 0, $location[0], $location[1],$cutSize[0],$cutSize[1],$cutSize[0],$cutSize[1]);   imagedestroy($this->image);   $this->image=$imageCut;  } /**  * 展現圖片  * @return [type] [description]  */ public function show(){  header("content-type:".$this->info['mime']);  $funn="image".$this->type;  $funn($this->image); } /**  * 保存圖片 * @param [type] $newname 新圖片名 * @return [type]   [description] */  public function save($newname){   header("content-type:".$this->info['mime']);   $funn="image".$this->type;   $funn($this->image,$newname.'.'.$this->type);  }  public function __destruct(){   imagedestroy($this->image);  } } ?>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳信县| 蓝田县| 甘洛县| 望谟县| 冷水江市| 融水| 黔西| 平利县| 墨玉县| 容城县| 新营市| 弥勒县| 马边| 冷水江市| 邢台县| 金堂县| 大田县| 商南县| 桓仁| 芮城县| 乐昌市| 镇康县| 霍州市| 庆安县| 玉林市| 镇坪县| 习水县| 格尔木市| 寿阳县| 鹤壁市| 曲松县| 师宗县| 兴文县| 奉贤区| 芒康县| 五常市| 乃东县| 舟曲县| 阿尔山市| 分宜县| 凌云县|