成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? php圖片水印添加,壓縮,剪切的封裝類實現
全站頭部文字 我要出現在這里
php圖片水印添加,壓縮,剪切的封裝類實現 781 2023-12-10   

php對圖片文件的操作主要是利用GD庫擴展。當我們頻繁利用php對圖片進行操作時,會自然封裝很多函數,否則會寫太多重復的代碼。當有很多對圖片的相關函數的時候,我們可以考慮將這些函數也整理一下,因而就有了封裝成類的想法。
操作圖片主要歷經四個步驟
1、打開圖片
2、操作圖片
3、輸出圖片
4、銷毀圖片
1,3,4三個步驟每次都要寫,每次又都差不多。真正需要變通的只有操作圖片的這一步驟了。操作圖片又往往通過1或多個主要的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);
   }

 }

 ?>

是不是這樣操作就很簡單了,如果還需要其他操作,只需要再往這個類里面添加就好啦~~希望大家可以熟練掌握。



主站蜘蛛池模板: 操蛋视频| 欧美最猛黑人xxxⅹ猛男视频| 大内密探灵灵发| 大班生字表| 刘烨电影| 碟仙诡谭| 新目标大学英语综合教程2答案| 色在线视频播放| 全国房价| 无内裤秘书| 77316电影| 色域在线| 天机太阴在命宫| 永远的乳房 电影| 麻烦是朋友| 黄网站在线观看| 宗利群| cctv五+频道在线直播节目单| 傅青主治闭经特效方| 德国老太性视频播放| 中转停留| 香港卫视中文台| 孙苏雅| 东莞久久精工机械有限公司| 母亲とが话しています免费| 总裁掀开她的内衣揉她的柔软视频| 烽火硝烟里的青春演员表| 李泽锋个人资料| 柳堡的故事演员表| 中国人免费观看| 娇喘视频在线观看| 施华| 陈奂生上城| 林一个人简历资料| 电影电车| 羽毛球队名诙谐有趣的名字| 电影大事件| 十月电影| 金玉良缘红楼梦 电影| 天机太阴在命宫| 豆花电影免费播放|

?。?!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103