天天看點

PHP按比例縮放圖檔

PHP按比例縮放圖檔

1>判斷傳過來圖檔的格式

2>擷取檔案名

3>擷取檔案所在路徑的檔案夾

4>擷取檔案的擴充名

5>擷取圖檔的寬高

6>計算原圖寬高比

7>計算縮略圖的寬高比

8>判斷縮放的比例進行縮放

9>計算原圖縮放的寬和高

10>調整大小

11>使用imagecopyresized()輸出縮小後的圖像

12>儲存

13>關閉圖檔源

執行個體代碼如下:

{

$info = getimagesize($from);

switch ($info[2])

{

case 1: $im = imagecreatefromgif($from); break;

case 2: $im = imagecreatefromjpeg($from); break;

case 3: $im = imagecreatefrompng($from); break;

default: exit('不支援的圖像格式'); break;

}

$temp = pathinfo($from);

$name = $temp["basename"];//檔案名

$dir = $temp["dirname"];//檔案所在的檔案夾

$extension = $temp["extension"];//檔案擴充名

$width = $info[0];//擷取圖檔寬度

$height = $info[1];//擷取圖檔高度

$per1 = round($width/$height,2);//計算原圖長寬比

$per2 = round($w/$h,2);//計算縮略圖長寬比

//計算縮放比例

if($per1>$per2||$per1==$per2)

{

//原圖長寬比大于或者等于縮略圖長寬比,則按照寬度優先

$per=$w/$width;

}

if($per1<$per2)

{

//原圖長寬比小于縮略圖長寬比,則按照高度優先

$per=$h/$height;

}

$temp_w = intval($width*$per);//計算原圖縮放後的寬度

$temp_h = intval($height*$per);//計算原圖縮放後的高度

$dst_im = imagecreatetruecolor($temp_w, $temp_h); //調整大小