PHP 使用gd庫壓縮圖片並生成新圖片返回全路徑


使用gd庫前,先檢查是否開啟了gd庫

phpinfo();

如果在php配置信息里找到了gd庫,那么就是開啟了,沒開啟的自行百度如何開啟php gd庫

 

 

 

 既然開啟了gd庫,那么直接再php里寫入以下代碼即可

//獲取圖片信息
$filename = './11.jpg';
$info = getimagesize($filename);

//獲取圖片的后綴
$type = image_type_to_extension($info[2], false);
//拼接圖片資源句柄函數
$func = 'imagecreatefrom'.$type;
//創建圖片資源句柄
$image = $func($filename);

//生成縮略圖,寬高都縮小1/2
//1、在內存中創建畫板                        寬          高
$image_thumb = imagecreatetruecolor($info[1]/4, $info[1]/2);
//2、將原圖復制到新建的畫板上,並按照一定比例壓縮
imagecopyresampled($image_thumb, $image, 0, 0,0,0,
    $info[1]/4,$info[1]/2,$info[0],$info[0]);

//銷毀緩存的圖片,釋放內存
imagedestroy($image);

//圖片輸出函數拼接
$outFunc = 'image'.$type;

//設置文件路徑
$ml = date('Ymd', time());//目錄名稱
$url = $ml.'/'.time().'.png';//存儲的路徑

//判斷目錄是否存在
if (file_exists($ml) == false){
    //創建目錄,並且設置最高權限
    if (mkdir($ml, 0700, true)){
        echo '創建目錄成功';
    }else{
        echo '創建目錄失敗';
    }
}

//判斷是http還是https
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
//全路徑
$urls = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $url;


//生成圖片
if ($outFunc($image_thumb,$url)){
    var_dump('壓縮圖片成功,圖片路徑為:'.$urls);
}else{
    var_dump('壓縮圖片失敗');
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM