中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

分享php多功能圖片處理類
來源:易賢網 閱讀:1228 次 日期:2016-08-22 15:19:32
溫馨提示:易賢網小編為您整理了“分享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多功能圖片處理類
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲制服欧美中文字幕中文字幕| 在线一区视频| 精品不卡一区| 久久精品二区三区| 欧美色图天堂网| 亚洲精品欧美激情| 欧美日韩一区二区三区在线| 亚洲第一中文字幕| 欧美一级淫片aaaaaaa视频| 欧美日韩xxxxx| 国产精品一区二区在线观看| 尹人成人综合网| 亚洲视频精选| 国模私拍一区二区三区| 亚洲一区二区三区四区中文| 免费一区视频| 亚洲美洲欧洲综合国产一区| 欧美人与性动交α欧美精品济南到| 最新国产乱人伦偷精品免费网站| 免费观看成人www动漫视频| 久久久久久成人| 一区二区视频在线观看| 欧美激情成人在线| 亚洲永久免费| 在线成人h网| 国产精品igao视频网网址不卡日韩| 一区二区三区高清在线| 国产欧美日韩亚洲精品| 免费永久网站黄欧美| 香蕉久久夜色| 亚洲精品美女在线观看播放| 国产精品视频免费在线观看| 久久综合狠狠综合久久激情| 亚洲一二三四区| 最新日韩欧美| 在线播放精品| 国产一区二区精品丝袜| 国产精品va在线| 欧美激情无毛| 美女视频黄 久久| 久久精品国产96久久久香蕉| 这里只有精品丝袜| 国产精品亚洲综合天堂夜夜| 国产精品高潮呻吟久久av无限 | 欧美黄色影院| 亚洲少妇自拍| 一本到12不卡视频在线dvd| 精品av久久久久电影| 国产日韩av一区二区| 国产精品毛片一区二区三区| 欧美日韩国产成人在线观看| 欧美成人精品h版在线观看| 亚洲国产综合在线看不卡| 欧美岛国激情| 猛干欧美女孩| 亚洲伦理在线免费看| 欧美性天天影院| 欧美三级网页| 久久精品首页| 欧美视频一区二| 亚洲国产91| 亚洲一区国产一区| 欧美日韩一区二区三区在线视频 | 亚洲一区二区精品| 免费不卡在线观看| 久久国产精品网站| 久久久亚洲国产美女国产盗摄| 欧美日韩亚洲系列| 亚洲国产高清视频| 欧美黄色免费| 亚洲精品久久久久久一区二区| 亚洲综合精品自拍| 国产精品麻豆成人av电影艾秋 | 欧美有码视频| 日韩午夜精品| 香蕉乱码成人久久天堂爱免费 | 国产一区二区丝袜高跟鞋图片| 亚洲天堂av图片| 欧美日韩中字| 久久av二区| 欧美日韩在线视频首页| 日韩亚洲综合在线| 国产精品av久久久久久麻豆网| 亚洲精品中文字幕在线| 久热成人在线视频| 亚洲福利视频网站| 欧美成人一区二区三区| 亚洲黄色天堂| 国产精品久久久久毛片软件 | 欧美一区国产一区| 极品少妇一区二区| 久久天堂av综合合色| 99精品黄色片免费大全| 国产精品欧美日韩一区二区| 久久精品国亚洲| 亚洲网站啪啪| 亚洲精选成人| 在线免费日韩片| 国产伦精品一区二区三区免费迷| 老司机免费视频久久| 欧美一区二区免费观在线| 亚洲精品一区二| 欧美日韩国产成人| 欧美大秀在线观看| 蜜桃久久精品乱码一区二区| 亚洲性xxxx| 在线视频你懂得一区二区三区| 国产亚洲一区在线| 国产女主播视频一区二区| 国产精品久久久久久久午夜| 欧美日韩91| 欧美系列精品| 国产精品外国| 一色屋精品视频在线观看网站| 亚洲丁香婷深爱综合| 亚洲老司机av| 欧美一区二区观看视频| 麻豆精品国产91久久久久久| 欧美成人在线网站| 国产精品呻吟| 亚洲人成网站色ww在线| 亚洲欧洲综合另类| 亚洲黄色免费网站| 免费在线看一区| 欧美韩国日本一区| 国产老女人精品毛片久久| 一区二区三区在线视频观看| 一区二区免费在线观看| 久久久中精品2020中文| 欧美日韩免费观看一区二区三区 | 亚洲欧洲精品一区二区三区不卡| 亚洲美女黄网| 欧美在线视频免费| 免费成人美女女| 国产精品视频午夜| 亚洲精品视频中文字幕| 久久精品水蜜桃av综合天堂| 欧美激情视频一区二区三区在线播放| 国产精品一区二区女厕厕| 日韩一级黄色大片| 欧美大片18| 亚洲第一福利视频| 久久综合给合| 国产视频一区在线观看一区免费| 亚洲永久精品国产| 国产精品人人爽人人做我的可爱| 亚洲免费福利视频| 欧美高清视频免费观看| 亚洲高清一二三区| 久久在线视频在线| 国产一区二区三区视频在线观看 | 亚洲欧美在线x视频| 国产精品成人在线观看| 亚洲一区二区在线视频| 欧美绝品在线观看成人午夜影视| 精品动漫3d一区二区三区免费| 久久久99爱| 亚洲国产精品va在线看黑人动漫 | 国产精品青草综合久久久久99| 一二三区精品福利视频| 国产精品成人观看视频国产奇米| 亚洲欧洲日本在线| 国产精品久久久久天堂| 久久国产精品网站| 亚洲欧洲一二三| 国产精品一区一区| 欧美www视频| 亚洲影院色无极综合| 极品尤物久久久av免费看| 欧美激情影院| 久久gogo国模裸体人体| 亚洲国产精品毛片| 欧美成人免费网| 久久久久久久尹人综合网亚洲| 欧美另类在线播放| 亚洲国产午夜| 国产一区二区三区免费观看| 老司机午夜免费精品视频| 亚洲美女91| 国产亚洲成av人在线观看导航 | 亚洲视频在线免费观看| 国产美女一区二区| 久久久青草青青国产亚洲免观| 一区二区三区四区国产精品| 国产一区二区三区久久久久久久久| 欧美日韩国产精品自在自线| 久久久噜噜噜久久久| 午夜精品福利视频| 一本色道久久88综合日韩精品| 在线成人黄色| 亚洲第一精品久久忘忧草社区| 国产精品美女午夜av| 欧美体内谢she精2性欧美| 欧美不卡视频一区发布| 久久午夜电影网| 欧美成人tv| 欧美日韩另类字幕中文| 欧美视频福利| 国产欧美在线观看| 经典三级久久|