中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php生成縮略圖的案例分析

發布時間:2020-08-21 14:12:57 來源:億速云 閱讀:133 作者:小新 欄目:編程語言

php生成縮略圖的案例分析?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

php生成縮略圖的方法:首先創建一個PHP示例文件;然后通過“header("content-type:image/png");”設定生成圖片格式;最后通過“image_resize”方法按指定大小生成縮略圖即可。

php生成縮略圖的案例分析

PHP生成圖片縮略圖的三種方法:

1、把大圖縮略到縮略圖指定的范圍內,可能有留白(原圖細節不丟失)

2、把大圖縮略到縮略圖指定的范圍內,不留白(原圖會居中縮放,把超出的部分裁剪掉)

3、把大圖縮略到縮略圖指定的范圍內,不留白(原圖會剪切掉不符合比例的右邊和下邊)

下面是代碼:

<?php
// +----------------------------------------------------------------------
// |  把大圖縮略到縮略圖指定的范圍內,可能有留白(原圖細節不丟失)
// +---------------------------------------------------------------------- 
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "stand_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設定生成圖片格式
echo file_get_contents($filename);
  
function image_resize($f, $t, $tw, $th){
// 按指定大小生成縮略圖,而且不變形,縮略圖函數
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
  
        list($fw, $fh, $tmp) = getimagesize($f);
  
        if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
  
        $fimg = $infunc($f);
  
        // 使縮略后的圖片不變形,并且限制在 縮略圖寬高范圍內
        if($fw/$tw > $fh/$th){
            $th = $tw*($fh/$fw);
        }else{
            $tw = $th*($fw/$fh);
        }
  
        $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
        if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
?>
<?php
// +----------------------------------------------------------------------
// |  把大圖縮略到縮略圖指定的范圍內,不留白(原圖會居中縮放,把超出的部分裁剪掉)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "cut_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設定生成圖片格式
echo file_get_contents($filename);
  
// 按指定大小生成縮略圖,而且不變形,縮略圖函數
function image_resize($f, $t, $tw, $th){
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
        list($fw, $fh, $tmp) = getimagesize($f);
        if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
  
        $fimg = $infunc($f);
//      $fw = 10;
//      $fh = 4;
//      $tw = 4;
//      $th = 2;
        // 把圖片鋪滿要縮放的區域
        if($fw/$tw > $fh/$th){
            $zh = $th;
            $zw = $zh*($fw/$fh);
            $_zw = ($zw-$tw)/2;
        }else{
            $zw = $tw;
            $zh = $zw*($fh/$fw);
            $_zh = ($zh-$th)/2;
        }
//        echo $zw."<br>";   
//        echo $zh."<br>";   
//        echo $_zw."<br>";   
//        echo $_zh."<br>";   
//        exit;
        $zimg = imagecreatetruecolor($zw, $zh);
        // 先把圖像放滿區域
        imagecopyresampled($zimg, $fimg, 0,0, 0,0, $zw,$zh, $fw,$fh);
  
        // 再截取到指定的寬高度
        $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $zimg, 0,0, 0+$_zw,0+$_zh, $tw,$th, $zw-$_zw*2,$zh-$_zh*2);
//        
        if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
  
?>
<?php
// +----------------------------------------------------------------------
// | 把大圖縮略到縮略圖指定的范圍內,不留白(原圖會剪切掉不符合比例的右邊和下邊)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "strict_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設定生成圖片格式
echo file_get_contents($filename);
  
function image_resize($f, $t, $tw, $th){
// 按指定大小生成縮略圖,而且不變形,縮略圖函數
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
  
        list($fw, $fh, $tmp) = getimagesize($f);
  
        if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
  
        $fimg = $infunc($f);
  
        if($fw/$tw > $fh/$th){
                $fw = $tw * ($fh/$th);
        }else{
                $fh = $th * ($fw/$tw);
        }
  
        $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
        if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
?>

感謝各位的閱讀!看完上述內容,你們對php生成縮略圖的案例分析大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

西乌珠穆沁旗| 灵石县| 长海县| 中超| 华亭县| 宁晋县| 乌恰县| 黄陵县| 揭东县| 齐齐哈尔市| 霍林郭勒市| 泰兴市| 峨边| 固安县| 莱芜市| 甘谷县| 锡林郭勒盟| 玉屏| 滦平县| 太和县| 东安县| 蓝山县| 苍溪县| 桂林市| 无棣县| 金堂县| 霍城县| 水富县| 吉安市| 武夷山市| 邵武市| 尤溪县| 保德县| 辛集市| 宝坻区| 武隆县| 齐河县| 玉树县| 阳信县| 雅江县| 乌鲁木齐县|