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

分享php多功能圖片處理類
來源:易賢網 閱讀:1284 次 日期: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多功能圖片處理類
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产老妇另类xxxxx| 欧美日韩高清影院| 另类小说欧美激情| 色综合色综合色综合| 一本色道久久加勒比精品| 国产欧美在线观看一区| 国产在线不卡一区| 精品国内二区三区| 日韩激情视频在线观看| 欧美一区二区三区四区高清| 日本亚洲欧美天堂免费| 亚洲精品一区二区三区福利| 麻豆精品视频在线观看免费| 91精品国产福利| 韩国成人福利片在线播放| 国产欧美日韩三级| jizz一区二区| 日本不卡的三区四区五区| 精品国产自在久精品国产| 久久精品国产在热久久| 中文字幕一区二区三区四区不卡| 91麻豆精品秘密| 日韩国产欧美在线视频| 亚洲国产精品激情在线观看| 99国产精品视频免费观看| 亚洲一区二区高清| 精品国产一区二区三区久久影院| 色综合天天综合网天天看片| 奇米色777欧美一区二区| 国产精品久久久久精k8 | 亚洲综合男人的天堂| 欧美剧在线免费观看网站 | 亚洲欧美日韩国产成人精品影院| |精品福利一区二区三区| 欧美日韩成人一区二区| 奇米四色…亚洲| 亚洲综合丝袜美腿| 国产精品乱人伦| 欧美一区二区性放荡片| 成人福利在线看| 美女诱惑一区二区| 亚洲最新视频在线播放| 国产女人水真多18毛片18精品视频| 91丨九色porny丨蝌蚪| 国产精品18久久久久久久久久久久| 有码一区二区三区| 国产亚洲精品中文字幕| 在线观看成人免费视频| 一本久道中文字幕精品亚洲嫩| 日韩二区三区四区| www.成人在线| 麻豆视频一区二区| 亚洲在线视频一区| 日韩伦理电影网| 欧美高清在线视频| 91精品国产综合久久久久久久久久| 成人小视频免费在线观看| 亚洲永久免费av| 亚洲黄一区二区三区| 久久九九全国免费| 精品欧美一区二区三区精品久久 | 一区二区三区不卡视频在线观看| 97成人超碰视| 久久国产精品区| 首页国产欧美日韩丝袜| 精品国产乱码久久久久久久| 欧美日韩一区二区在线观看 | 国产精品综合网| 日韩激情视频网站| 麻豆国产欧美一区二区三区| 亚洲第一成人在线| 亚洲一线二线三线视频| 亚洲精品免费看| 亚洲欧美偷拍三级| 中文字幕av免费专区久久| 国产亚洲综合性久久久影院| 欧美精品在欧美一区二区少妇| av激情成人网| 国产91高潮流白浆在线麻豆| 麻豆91在线观看| 免费观看久久久4p| 国产一二精品视频| 成人免费观看av| 欧美三级在线看| 欧美酷刑日本凌虐凌虐| 精品99一区二区三区| 中日韩免费视频中文字幕| 夜夜精品视频一区二区| 蜜桃精品视频在线观看| 国产精品伊人色| 国产成人精品免费网站| av电影在线观看不卡| 欧美一级二级在线观看| 国产亚洲午夜高清国产拍精品 | www.欧美亚洲| 91精品国产一区二区人妖| 欧美电影免费观看高清完整版在线 | 99热精品一区二区| 91精品国产综合久久精品app| 欧美高清一级片在线| 欧美国产日韩a欧美在线观看| 亚洲午夜精品久久久久久久久| 国产精品自拍av| 7777精品伊人久久久大香线蕉最新版 | 亚洲精品日产精品乱码不卡| 日本vs亚洲vs韩国一区三区二区| 国产91在线看| 欧美一级片在线看| 日本一区二区不卡视频| 亚洲成人动漫av| 国产曰批免费观看久久久| 日本高清不卡aⅴ免费网站| 亚洲精品在线观看视频| 国产精品久久久久久久蜜臀| 免费在线观看视频一区| 成人一区在线观看| 日韩精品中午字幕| 久久久久久久久伊人| 中文字幕一区二区三区精华液| 午夜日韩在线观看| 国内外精品视频| 欧美日韩国产123区| 欧美大片日本大片免费观看| 亚洲欧美电影一区二区| 国产精品一区三区| 欧美成人性战久久| 亚洲成人综合在线| 日本高清视频一区二区| 一区二区三区在线免费观看| 91片在线免费观看| 欧美国产激情一区二区三区蜜月| 国产一区二区三区不卡在线观看| 制服.丝袜.亚洲.中文.综合| 亚洲午夜久久久| 欧美电影在线免费观看| 日韩专区在线视频| 欧洲国产伦久久久久久久| 欧美午夜一区二区三区免费大片| 国产精品欧美综合在线| 从欧美一区二区三区| 国产拍揄自揄精品视频麻豆| 国产大陆亚洲精品国产| 国产亚洲视频系列| 国产精品1024| 日韩午夜av一区| 国产乱理伦片在线观看夜一区| 欧美另类高清zo欧美| 青青草原综合久久大伊人精品| 欧美三级韩国三级日本三斤| 亚洲一级不卡视频| 欧美日韩一区精品| 狠狠色伊人亚洲综合成人| 久久久久久免费网| 韩国中文字幕2020精品| 日韩视频一区二区三区在线播放| 日本不卡1234视频| 日韩精品专区在线| 国产精品影视在线观看| 国产精品久久久久久妇女6080| 国产在线精品一区二区三区不卡| 国产欧美综合色| 国产不卡视频一区| 亚洲丰满少妇videoshd| 日韩一区二区精品葵司在线| 国产成人综合视频| 亚洲精品中文字幕在线观看| 亚洲男人都懂的| 91丨porny丨最新| 国内久久精品视频| 一区二区中文视频| 99国产精品国产精品毛片| 一区二区在线观看视频| 色狠狠综合天天综合综合| 亚洲一卡二卡三卡四卡五卡| 精品久久久久久无| 成人深夜视频在线观看| 日韩黄色免费电影| 国产精品午夜在线观看| 色狠狠色噜噜噜综合网| 老司机午夜精品| 久久久精品国产免大香伊| 色先锋久久av资源部| 日韩av一级片| 国产精品久久毛片av大全日韩| 91精品午夜视频| 国产91综合一区在线观看| 艳妇臀荡乳欲伦亚洲一区| 91精选在线观看| 99在线精品一区二区三区| 精品在线亚洲视频| 亚洲欧美日韩人成在线播放| 精品美女在线播放| 91麻豆精品一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美偷拍另类a∨色屁股| 国产精品久久久久三级| 日韩精品中文字幕一区二区三区 | 国产亚洲成av人在线观看导航| 91高清视频在线| 色综合久久天天综合网|