茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    分享php多功能圖片處理類
    來源:易賢網(wǎng) 閱讀:1120 次 日期:2016-08-22 15:19:32
    溫馨提示:易賢網(wǎng)小編為您整理了“分享php多功能圖片處理類”,方便廣大網(wǎng)友查閱!

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

    <?php 

    /** 

     * Image.class.php 圖像處理類 

     * @author Administrator 

     * 

     */

    class Image{ 

      private $path=''; 

      /** 

       * 構(gòu)造方法 

       * @param unknown $path 

       */

      function __construct($path=''){ 

        if (!empty($path)) { 

          $this->path=$path; 

        } 

      } 

      /** 

       +----------------------------------------------- 

       * 等比縮放函數(shù) 

       +----------------------------------------------- 

       * @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); //圖片的寬度,高度,類型 

        //獲取圖片資源,各種類型的圖片都可以創(chuàng)建資源,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;  

      } 

      /** 

       +----------------------------------------------------------------------- 

       * 水印標(biāo)記函數(shù) 

       +----------------------------------------------------------------------- 

       * @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 "水印圖片不應(yīng)該比背景圖片小"; 

            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; 

        } 

      } 

      /** 

       +----------------------------------------------------------------------- 

       * 獲取圖片信息函數(shù) 

       +----------------------------------------------------------------------- 

       * @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; 

        }   

      } 

      /** 

       +-------------------------------------------------------- 

       * 創(chuàng)建原圖像格式函數(shù) 

       +-------------------------------------------------------- 

       * @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; 

      } 

      /** 

       +-------------------------------------------------- 

       * 獲取等比縮放尺寸函數(shù) 

       +-------------------------------------------------- 

       * @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); 

        //獲取圖像的調(diào)色板的顏色數(shù)目 

        if ($otsc>=0&&$otsc<=imagecolorstotal($imageres)) { 

          //取得某索引的顏色 

          $stran=imagecolorsforindex($imageres, $otsc); 

          //為圖像分配顏色 

          $newt=imagecolorallocate($imageres, $stran['red'], $stran['green'], $stran['blue']); 

          //區(qū)域填充函數(shù) 

          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;  

       } 

       /** 

        +---------------------------------------------- 

        *保存圖像函數(shù) 

        +---------------------------------------------- 

        * @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; 

       } 

         

       /** 

        +----------------------------------------------------------------- 

        * 獲取水印位置函數(shù) 

        +----------------------------------------------------------------- 

        * @param unknown $backinfo  背景信息 

        * @param unknown $waterinfo  水印信息 

        * @param unknown $waterpos  水印位置 

        * @return boolean|multitype:number 返回坐標(biāo)數(shù)組 

        */

       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; 

       } 

    ?>

    以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)PHP程序設(shè)計有所幫助。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:分享php多功能圖片處理類
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)