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

首頁 > 語言 > PHP > 正文

PHP生成等比縮略圖類和自定義函數分享

2024-09-04 11:43:16
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP生成等比縮略圖類和自定義函數分享,分別封裝成了一個類和自定義函數,需要的朋友可以參考下。

共有兩種等比例縮略圖方法可以借鑒

一、為類文件,實例化之后即可使用

二、為自定義方法,比較輕巧

類文件代碼如下:

  1. $resizeimage = new resizeimage("./shawn.jpg""200""100""0","../pic/shawnsun.jpg"); 
  2. //實例化下面的類,就能生成縮略圖 
  3. //其中,源文件和縮略圖地址可以相同,200,100分別代表寬和高,第四個參數為可選 0不截圖,1為截圖 
  4.  
  5. <?php 
  6. class resizeimage{ 
  7.  
  8.     //圖片類型 
  9.     public $type
  10.     //實際寬度 
  11.     public $width
  12.     //實際高度 
  13.     public $height
  14.     //改變后的寬度 
  15.     public $resize_width
  16.     //改變后的高度 
  17.     public $resize_height
  18.     //是否裁圖 
  19.     public $cut
  20.     //源圖象 
  21.     public $srcimg
  22.     //目標圖象地址 
  23.     public $dstimg
  24.     //臨時創建的圖象 
  25.     public $im
  26.      
  27.     function resizeimage($img$wid$hei,$c,$dstpath){ 
  28.      
  29.           $this--->srcimg = $img
  30.           $this->resize_width = $wid
  31.           $this->resize_height = $hei
  32.           $this->cut = $c
  33.      
  34.           //圖片的類型 
  35.           $this->type = strtolower(substr(strrchr($this->srcimg,"."),1)); 
  36.           //初始化圖象 
  37.           $this->initi_img(); 
  38.           //目標圖象地址 
  39.           $this->dst_img($dstpath); 
  40.           //W & H 
  41.           $this->width  = imagesx($this->im); 
  42.           $this->height = imagesy($this->im); 
  43.           //生成圖象 
  44.           $this->newimg(); 
  45.           ImageDestroy ($this->im); 
  46.      } 
  47.      
  48.     function newimg(){ 
  49.      
  50.         //改變后的圖象的比例 
  51.         $resize_ratio = ($this->resize_width)/($this->resize_height); 
  52.         //實際圖象的比例 
  53.         $ratio = ($this->width)/($this->height); 
  54.          
  55.         if(($this->cut)=="1"
  56.         //裁圖 
  57.         { 
  58.             if($ratio>=$resize_ratio
  59.             //高度優先 
  60.             { 
  61.                 $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); 
  62.                 imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width, 
  63.                                    $this->resize_height, (($this->height)*$resize_ratio), 
  64.                                    $this->height 
  65.                 ); 
  66.                 ImageJpeg ($newimg,$this->dstimg); 
  67.             } 
  68.             if($ratio<$resize_ratio
  69.             //寬度優先 
  70.             { 
  71.                 $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); 
  72.                 imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width, 
  73.                                    $this->resize_height, $this->width, 
  74.                                    (($this->width)/$resize_ratio
  75.                 ); 
  76.                 ImageJpeg ($newimg,$this->dstimg); 
  77.             } 
  78.               } 
  79.         else 
  80.         //不裁圖 
  81.         { 
  82.             if($ratio>=$resize_ratio
  83.             { 
  84.                 $newimg = imagecreatetruecolor($this->resize_width, 
  85.                                                ($this->resize_width)/$ratio 
  86.                 ); 
  87.                 imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width, 
  88.                                    ($this->resize_width)/$ratio$this->width, 
  89.                                    $this->height 
  90.                 ); 
  91.                 ImageJpeg ($newimg,$this->dstimg); 
  92.             } 
  93.             if($ratio<$resize_ratio
  94.             { 
  95.                 $newimg = imagecreatetruecolor(($this->resize_height)*$ratio
  96.                                                 $this->resize_height 
  97.                 ); 
  98.                 imagecopyresampled($newimg$this->im, 0, 0, 0, 0, 
  99.                                    ($this->resize_height)*$ratio
  100.                                    $this->resize_height, $this->width, 
  101.                                    $this->height 
  102.                 ); 
  103.                 ImageJpeg ($newimg,$this->dstimg); 
  104.             } 
  105.         } 
  106.    } 
  107.      
  108.     //初始化圖象 
  109.     function initi_img(){ 
  110.  
  111.         if($this->type=="jpg"
  112.         { 
  113.             $this->im = imagecreatefromjpeg($this->srcimg); 
  114.         } 
  115.         if($this->type=="gif"
  116.         { 
  117.             $this->im = imagecreatefromgif($this->srcimg); 
  118.         } 
  119.         if($this->type=="png"
  120.         { 
  121.             $this->im = imagecreatefrompng($this->srcimg); 
  122.         } 
  123.     } 
  124.     //圖象目標地址 
  125.     function dst_img($dstpath){ 
  126.      
  127.         $full_length  = strlen($this->srcimg); 
  128.         $type_length  = strlen($this->type); 
  129.         $name_length  = $full_length-$type_length
  130.  
  131.         $name = substr($this->srcimg,0,$name_length-1); 
  132.         $this->dstimg = $dstpath
  133.  
  134.         //echo $this->dstimg; 
  135.     } 
  136.  
  137. ?> 

自定義方法,代碼如下:

  1. thumbs('shawn.jpg','shawnsun.jpg',100,100); 
  2.  
  3. <?php 
  4.  
  5. function thumbs($FileName,$SaveTo,$SetW,$SetH){ 
  6.     $IMGInfogetimagesize($FileName); 
  7.     if(!$IMGInforeturn false; 
  8.          
  9.     if($IMGInfo['mime']== "image/pjpeg" || $IMGInfo['mime']=="image/jpeg"){ 
  10.         $ThisPhoto= imagecreatefromjpeg($FileName); 
  11.     }elseif($IMGInfo['mime']== "image/x-png" || $IMGInfo['mime']== "image/png"){ 
  12.         $ThisPhoto= imagecreatefrompng($FileName);   
  13.     }elseif($IMGInfo['mime']== "image/gif"){ 
  14.         $ThisPhoto=imagecreatefromgif($FileName); 
  15.     } 
  16.      
  17.     $width=$IMGInfo[0]; 
  18.     $height=$IMGInfo[1];   
  19.     $scalc = max($width/$SetW,$height/$SetH); 
  20.     $nw = intval($width/$scalc); 
  21.     $nh = intval($height/$scalc); 
  22.     echo "縮略大?。簑$nw,h$nh <br /-->"
  23.      
  24.     if($SetW-$nw == 1){$nw = $SetW;} 
  25.     if($SetH-$nh == 1){$nh = $SetH;} 
  26.     echo "+修正1像素: w$nw,h$nh<br>"
  27.      
  28.     //補寬 
  29.     if($SetW-$nw > 0){ 
  30.         $nh = $nh +(($nh/$nw) * ($SetW-$nw)); 
  31.         echo "*需補寬".($SetW-$nw).",陪補高".(($nh/$nw) * ($SetW-$nw))."  <br>";  
  32.         $nw = $SetW
  33.     } 
  34.     //補高 
  35.     if($SetH-$nh > 0){ 
  36.         $nw = $nw + (($nw/$nh) * ($SetH-$nh)); 
  37.         echo "*需補高".($SetH-$nh).",陪補寬". (($nw/$nh) * ($SetH-$nh)) ."<br>"
  38.         $nh = $SetH
  39.     } 
  40.     $nw = intval($nw); 
  41.     $nh = intval($nh); 
  42.     echo "+修正大?。簑$nw,h$nh<br>"
  43.      
  44.     $px = ($SetW - $nw)/2; 
  45.     $py = ($SetH - $nh)/2; 
  46.     echo "窗口大?。簑$SetW,h$SetH <br>"
  47.     echo "+偏移修正:x$px,y$py <br>"
  48.      
  49.     $NewPhoto=imagecreatetruecolor($SetW,$SetH); 
  50.     imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height); 
  51.     ImageJpeg ($NewPhoto,$SaveTo); 
  52.     return true; 
  53.      
  54. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩成人性视频| 亚洲一区二区三区在线免费观看| 精品久久在线播放| 成人性生交大片免费观看嘿嘿视频| 亚洲va久久久噜噜噜久久天堂| www.久久久久久.com| 久久夜精品va视频免费观看| 欧美日韩国产激情| 欧美大片免费观看| 欧美视频免费在线| 国产精品高精视频免费| 亚洲一区二区三区xxx视频| 91情侣偷在线精品国产| 伊人一区二区三区久久精品| 日韩色av导航| 亚洲色图综合网| 91成人性视频| 亚洲va国产va天堂va久久| 久久久久久久一区二区| 欧美亚洲另类激情另类| 国产精品69久久久久| 亚洲在线第一页| 91在线高清视频| 亚洲日韩欧美视频一区| 久久成人人人人精品欧| 狠狠做深爱婷婷久久综合一区| 亚洲精品一区二区三区婷婷月| 久久久av网站| 亚洲激情视频在线播放| 国内精品视频在线| 国产成人精品在线视频| 成人国产精品日本在线| 国产一区二区三区高清在线观看| 精品久久久久久中文字幕大豆网| 日韩精品中文字幕久久臀| 日韩av电影院| 色综合久久久久久中文网| 欧美日韩国产麻豆| 国产午夜精品全部视频播放| 中文字幕精品在线视频| 深夜福利亚洲导航| 91九色国产在线| 国产日韩一区在线| 日韩精品免费在线视频观看| 亚洲国产精品成人一区二区| 视频在线观看一区二区| 成人黄色在线免费| 亚洲欧美精品中文字幕在线| 伊人伊成久久人综合网小说| 亚洲最大激情中文字幕| 国产精品成人播放| 日韩美女在线看| 亚洲片国产一区一级在线观看| 亚洲影院污污.| 欧美激情一区二区三级高清视频| 曰本色欧美视频在线| 亚洲自拍欧美色图| 亚洲国内高清视频| 成人欧美一区二区三区黑人| 69久久夜色精品国产7777| 国产综合香蕉五月婷在线| 国产美女精彩久久| 在线观看日韩视频| 精品视频一区在线视频| 亚洲国产一区二区三区在线观看| 中文在线不卡视频| 国产啪精品视频| 亚洲欧洲xxxx| 亚洲а∨天堂久久精品9966| 亚洲欧美国产制服动漫| 91高清免费视频| 日本午夜人人精品| 91中文字幕在线观看| 久久在线精品视频| 九九九热精品免费视频观看网站| 亚洲国产一区二区三区在线观看| 精品丝袜一区二区三区| 日本成人免费在线| 青青草一区二区| 日韩中文字幕国产| 欧美成aaa人片在线观看蜜臀| 国产网站欧美日韩免费精品在线观看| 人九九综合九九宗合| 亚洲91av视频| 91国自产精品中文字幕亚洲| 91欧美精品午夜性色福利在线| 欧美黑人一区二区三区| 国产精品露脸av在线| 久久激情视频免费观看| 久久精品中文字幕免费mv| 国内精品久久久久伊人av| 久久99亚洲精品| 国产精品亚洲激情| 中文字幕亚洲自拍| 亚洲第一视频在线观看| 亚洲伊人久久大香线蕉av| 九九热精品视频| 国产视频精品va久久久久久| 精品亚洲国产成av人片传媒| 在线观看国产精品淫| 色99之美女主播在线视频| 超碰日本道色综合久久综合| 日韩中文字幕精品| 国产精品电影网| 国产精品免费久久久久影院| 日韩有码片在线观看| 久久精品视频在线| 精品亚洲精品福利线在观看| 精品国偷自产在线视频| 欧美精品少妇videofree| 中文字幕无线精品亚洲乱码一区| 亚洲国产精品大全| 2023亚洲男人天堂| 国产精品久久久久影院日本| 欧美在线视频观看| 欧美精品日韩www.p站| 成人黄色网免费| 第一福利永久视频精品| 在线视频日韩精品| 日韩免费av片在线观看| 中文字幕av一区二区三区谷原希美| 久久99青青精品免费观看| 国产精品wwww| 亚洲一区二区自拍| 国产精品情侣自拍| 性日韩欧美在线视频| 久久av红桃一区二区小说| 中文字幕日韩在线视频| 欧美高清视频在线| 亚洲午夜久久久久久久| 国产精品网站入口| 欧美日韩裸体免费视频| 欧美成人午夜免费视在线看片| 久久视频中文字幕| 久久影院中文字幕| 欧美电影在线观看完整版| 欧美视频专区一二在线观看| 国产日韩欧美电影在线观看| 亚洲中国色老太| 欧美日韩在线免费观看| 欧美日韩ab片| 亚洲欧洲日本专区| 大量国产精品视频| 97在线免费观看视频| 91视频8mav| 国产精品视频一区二区三区四| 亚洲视频在线观看网站| 亚洲免费一级电影| 中文字幕日韩欧美在线视频| 综合久久五月天| 国产精品视频xxxx| 日本不卡免费高清视频| 国内精品一区二区三区| 亚洲日本成人女熟在线观看| 欧美性极品少妇精品网站| 欧美成人精品激情在线观看| 蜜臀久久99精品久久久久久宅男| 亚洲最大福利视频网站| 亚洲国产精品推荐| 51视频国产精品一区二区| 国产亚洲视频在线| 亚洲国产精品字幕| 亚洲人av在线影院| 久久这里有精品视频|