亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

分享php多功能圖片處理類

2024-05-04 23:46:01
字體:
來源:轉載
供稿:網友
這篇文章主要為大家分享php多功能圖片處理類,方便大家進行學習研究,感興趣的小伙伴們可以參考一下
 

本文實例為大家分享了多功能php圖片處理類,供大家參考,具體內容如下

<?php /**  * Image.class.php 圖像處理類  * @author Administrator  *  */ class Image{      private $path='';   /**    * 構造方法    * @param unknown $path    */   function __construct($path=''){     if (!empty($path)) {       $this->path=$path;     }   }   /**    +-----------------------------------------------    * 等比縮放函數    +-----------------------------------------------    * @param unknown $name 需處理圖片的名稱    * @param unknown $width 縮放后的寬度    * @param unknown $height 縮放后的高度    * @param string $thumb_prixs 縮放后的前綴名    * @return mixed $newname 返回的縮放后的文件名    */   function thumb($name,$width,$height,$thumb_prixs='th_'){     //獲取圖片信息     $Info=$this->ImageInfo($name); //圖片的寬度,高度,類型     //獲取圖片資源,各種類型的圖片都可以創建資源,jpg,gif,png     $imagres=$this->Img_resouce($name, $Info);     //獲取計算圖片等比例之后的大小,     $size=$this->getNewSize($name,$width,$height,$Info);     //獲取新的圖片資源,處理透明背景     $newimg=$this->getImage($imagres,$size,$Info);     //另存為一個新的圖片,返回新的縮放后的圖片名稱     $newname=$this->SaveNewImage($newimg,$thumb_prixs.$name,$Info);     return $newname;    }      /**    +-----------------------------------------------------------------------    * 水印標記函數    +-----------------------------------------------------------------------    * @param unknown $backname  背景文件名    * @param unknown $watername 水印文件名    * @param number $waterpos  水印位置    * @param string $wa_prixs  水印前綴名    * @return boolean    */   function waterMark($backname,$watername,$waterpos=0,$wa_prixs='wa_') {          if (file_exists($this->path.$backname) && file_exists($this->path.$watername)) {              $backinfo=$this->ImageInfo($backname);              $waterinfo=$this->ImageInfo($watername);              if(!$pos=$this->getPos($backinfo, $waterinfo, $waterpos)){         echo "水印圖片不應該比背景圖片小";         return false;       }        $backimg=$this->Img_resouce($backname, $backinfo);                $waterimg=$this->Img_resouce($watername, $waterinfo);        var_dump($backimg);exit();        $backimg=$this->CopyImage($backimg, $waterimg, $pos, $waterinfo);                $this->SaveNewImage($backimg, $wa_prixs.$backname, $backinfo);     }else{              echo "圖片或水印不存在";       return false;     }   }   /**    +-----------------------------------------------------------------------    * 獲取圖片信息函數    +-----------------------------------------------------------------------    * @param unknown $name    * @return unknown    */       private function ImageInfo($img) {     $imageInfo=getimagesize($img);     if ($imageInfo!==false) {       $imageType=strtolower(substr(image_type_to_extension($imageInfo[2]),1));       $imageSize=filesize($img);       $Info=array(         "width" => $imageInfo[0],         "height" => $imageInfo[1],         "type" => $imageType,         "size" => $imageSize,         "mime" => $imageInfo['mime']       );       return $Info;     }else{       return false;     }     }         /**    +--------------------------------------------------------    * 創建原圖像格式函數    +--------------------------------------------------------    * @param unknown $name    * @param unknown $imaginfo    * @return boolean|resource    */   private function Img_resouce($name,$imageinfo){     $iamgeres=$this->path.$name;     //var_dump($iamgeres);exit();      switch ($imageinfo['type']) {       case 'gif':        $img=imagecreatefromgif($name);          break;       case 'jpg':        $img=imagecreatefromjpeg($name);          break;       case 'png':        $img=imagecreatefrompng($name);          break;                  }      return $img;   }   /**    +--------------------------------------------------    * 獲取等比縮放尺寸函數    +--------------------------------------------------    * @param unknown $name    * @param unknown $width    * @param unknown $height    * @param unknown $imaginfo    * @return Ambigous <unknown, number>    */   private function getNewSize($name,$width,$height,$imaginfo){        $size['width']=$imaginfo['width'];        $size['height']=$imaginfo['height'];     if ($width<$imaginfo['width']) {       $size['width']=$width;     }     if ($height<$imaginfo['height']) {       $size['height']=$height;     }     //圖像等比例縮放算法     if ($imaginfo['width']*$size['width']>$imaginfo['height']*$size['height']) {       $size['height']=round($imaginfo['height']*$size['width']/$imaginfo['width']);     }else{       $size['width']=round($imaginfo['width']*$size['height']/$imaginfo['height']);     }     return $size;    }   private function getImage($imageres,$size,$imageinfo){     //新建一個真彩色圖像     $newimg=imagecreatetruecolor($size['width'], $size['height']);     //將某個顏色定義為透明色     $otsc=imagecolortransparent($imageres);     //獲取圖像的調色板的顏色數目     if ($otsc>=0&&$otsc<=imagecolorstotal($imageres)) {       //取得某索引的顏色       $stran=imagecolorsforindex($imageres, $otsc);       //為圖像分配顏色       $newt=imagecolorallocate($imageres, $stran['red'], $stran['green'], $stran['blue']);       //區域填充函數       imagefill($newimg, 0, 0, $newt);       //為圖像定義透明色       imagecolortransparent($newimg,$newt);         }     imagecopyresized($newimg, $imageres, 0, 0, 0, 0, $size['width'], $size['height'], $imageinfo['width'], $imageinfo['height']);            imagedestroy($imageres);          return $newimg;     }    /**     +----------------------------------------------     *保存圖像函數     +----------------------------------------------     * @param unknown $newimg     * @param unknown $newname     * @param unknown $imageinfo     * @return unknown      */    private function SaveNewImage($newimg,$newname,$imageinfo){     switch ($imageinfo['type']){       case 1://gif         $result=imagegif($newimg,$this->path.$newname);         break;       case 2://jpg         $result=imagejpeg($newimg,$this->path.$newname);         break;       case 3://png         $result=imagepng($newimg,$this->path.$newname);         break;     }     imagedestroy($newimg);     return $newname;    }        /**     +-----------------------------------------------------------------     * 獲取水印位置函數     +-----------------------------------------------------------------     * @param unknown $backinfo  背景信息     * @param unknown $waterinfo  水印信息     * @param unknown $waterpos  水印位置     * @return boolean|multitype:number 返回坐標數組     */    private function getPos($backinfo,$waterinfo,$waterpos) {          if ($backinfo['width']<$waterinfo['width']||$backinfo['height']<$waterinfo['height']) {       return false;     }     switch ($waterpos) {              case 1://左上角         $posX=0;         $posY=0;          break;       case 2://中上方         $posX=$backinfo['width']-$waterinfo['width']/2;         $posY=0;          break;       case 3://右上角         $posX=$backinfo['width']-$waterinfo['width'];         $posY=0;          break;       case 4://左中方         $posX=0;         $posY=$backinfo['height']-$waterinfo['height']/2;          break;       case 5://正中間         $posX=$backinfo['width']-$waterinfo['width']/2;         $posY=$backinfo['height']-$waterinfo['height']/2;          break;       case 6://右中方         $posX=$backinfo['width']-$waterinfo['width'];         $posY=$backinfo['height']-$waterinfo['height']/2;          break;       case 7://底部靠左         $posX=0;         $posY=$backinfo['height']-$waterinfo['height'];          break;       case 8://底部居中         $posX=$backinfo['width']-$waterinfo['width']/2;         $posY=$backinfo['height']-$waterinfo['height'];          break;       case 9://底部靠右         $posX=$backinfo['width']-$waterinfo['width'];         $posY=$backinfo['height']-$waterinfo['height'];          break;       case 0:       default :         $posX=rand(0,$backinfo['width']-$waterinfo['width']);         $posY=rand(0,$backinfo['height']-$waterinfo['height']);          break;     }     return array('posX'=>$posX,'posY'=>$posY);    }    /**     +-------------------------------------------------------------------     * 拷貝圖像     +-------------------------------------------------------------------     * @param unknown $backimg   背景資源     * @param unknown $waterimg  水印資源     * @param unknown $pos     水印位置     * @param unknown $waterinfo  水印信息     * @return unknown     */    private function CopyImage($backimg,$waterimg,$pos,$waterinfo) {           imagecopy($backimg, $waterimg, $pos['posX'], $pos['posY'], 0, 0, $waterinfo['width'], $waterinfo['height']);     imagedestroy($waterimg);          return $backimg;    }      } ?> 

以上就是本文的全部內容,希望對大家學習PHP程序設計有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费视频网址| 国产91精品久| 欧美性xxxxx极品娇小| 久久久极品av| 国产精品久久久久久久久久| 免费成人高清视频| 久久久久久久网站| 伊人av综合网| 成人国产亚洲精品a区天堂华泰| 一区二区三区视频免费在线观看| 国产欧美va欧美va香蕉在线| 亚洲老头同性xxxxx| 欧美精品久久久久久久久久| 国产精品99久久久久久久久久久久| 欧美激情视频一区| 色偷偷偷综合中文字幕;dd| 久久精品国产96久久久香蕉| 欧美日韩中国免费专区在线看| 日韩有码在线观看| 精品香蕉一区二区三区| 亚洲欧美资源在线| 中文字幕国产精品| 国产精品视频在线播放| 色婷婷综合久久久久| 91精品国产综合久久香蕉| 深夜福利日韩在线看| 亚洲免费一级电影| 69视频在线免费观看| 日韩精品中文字幕久久臀| 高清欧美性猛交xxxx| 国产成人精品电影| 国产精品视频999| 欧美性xxxx| 国产精国产精品| 亚洲美女激情视频| 亚洲伊人久久大香线蕉av| 最近2019中文字幕在线高清| 精品国产鲁一鲁一区二区张丽| 欧美日韩中文字幕在线| 国产精品免费久久久久影院| 国产成人91久久精品| 国产91在线视频| 日韩在线视频网| 91精品国产99| 亚洲成成品网站| 亚洲在线视频福利| 欧美一级电影久久| 亚洲国产三级网| www.久久久久| 视频直播国产精品| 久久精品中文字幕免费mv| 日韩av在线免费观看| 欧美洲成人男女午夜视频| 国产欧美精品久久久| 最近2019年手机中文字幕| 国产一区二区欧美日韩| 精品视频在线播放色网色视频| zzjj国产精品一区二区| 欧美性xxxxxx| 国产精品久久久久久久av电影| 欧美精品精品精品精品免费| 亚洲人线精品午夜| 国产亚洲精品美女久久久久| 欧美成人免费全部| 日韩电影免费在线观看| 亚洲高清福利视频| 一区二区亚洲欧洲国产日韩| 日韩高清免费在线| 日韩精品视频中文在线观看| 91性高湖久久久久久久久_久久99| 亚洲激情 国产| 欧美日韩在线免费观看| 国产精品一二三在线| 日韩在线播放一区| 日韩av中文字幕在线| 秋霞成人午夜鲁丝一区二区三区| 欧美在线免费看| 在线观看日韩欧美| 91禁国产网站| 97超碰蝌蚪网人人做人人爽| 45www国产精品网站| 韩国一区二区电影| 欧美在线观看www| 欧美老妇交乱视频| 中文字幕日韩视频| 国产精品嫩草影院一区二区| 精品偷拍各种wc美女嘘嘘| 91精品在线一区| 国产精品福利在线| 日本久久91av| 亚洲视频在线观看网站| 亚洲欧洲中文天堂| 亚洲精品久久久一区二区三区| 日韩三级成人av网| 欧美性生活大片免费观看网址| 亚洲电影免费在线观看| 色老头一区二区三区| 美乳少妇欧美精品| 性欧美办公室18xxxxhd| 亚洲激情视频网站| 欧美久久精品一级黑人c片| 久久精品国产亚洲精品| 欧洲亚洲女同hd| 亚洲国产精品人人爽夜夜爽| 国产日韩精品视频| 爽爽爽爽爽爽爽成人免费观看| 国产一区二区视频在线观看| 日本午夜精品理论片a级appf发布| 久久久噜噜噜久噜久久| 日韩高清欧美高清| 川上优av一区二区线观看| 亚洲电影免费观看高清| www.亚洲一区| 国产91精品网站| 中文字幕不卡av| 欧美大胆在线视频| 国产精品6699| 亚洲偷欧美偷国内偷| 欧美午夜精品伦理| 理论片在线不卡免费观看| 久久久免费观看| 欧美精品福利在线| 亚洲人成免费电影| 久久精品久久久久| 91夜夜未满十八勿入爽爽影院| 亚洲欧美综合另类中字| 欧美成人免费视频| 国产在线视频91| 国产不卡av在线免费观看| 欧美黄色小视频| 奇米成人av国产一区二区三区| 日本一区二区在线播放| 大桥未久av一区二区三区| 国产精品91视频| 欧美成人精品在线观看| 欧美日韩精品在线观看| 日本精品视频在线播放| 国产视频久久久久| 高清欧美性猛交xxxx黑人猛交| 91麻豆国产语对白在线观看| 最近的2019中文字幕免费一页| 欧美激情免费视频| 国产视频精品va久久久久久| 久久综合免费视频| 在线观看欧美视频| 日韩视频在线免费观看| 国产精品自拍网| 国产精品美女www爽爽爽视频| 一本久久综合亚洲鲁鲁| 国产精品久久久久久av福利| 国产精品日韩欧美| 国内精品400部情侣激情| 7777kkkk成人观看| 97色在线视频| 亚洲成人精品视频在线观看| 92看片淫黄大片欧美看国产片| 午夜欧美不卡精品aaaaa| 亚洲免费伊人电影在线观看av| 午夜精品久久久久久久99热浪潮| 欧洲成人午夜免费大片| 午夜免费日韩视频| 另类少妇人与禽zozz0性伦| 国产一区深夜福利| 国产精品久久久久久网站|