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); //調整大小