*自定義一個圖片等比縮放函數
*@param string $picname 被縮放圖片名
*@param string $path 被縮放圖片路徑
*@param int $maxWidth 圖片被縮放后的最大寬度
*@param int $maxHeight 圖片被縮放后的最大高度
*@param string $pre 縮放后的圖片名前綴,默認為"s_"
*@return boolen 返回布爾值表示成功與否。
*/
function imageResize($picname,$path,$maxWidth,$maxHeight,$pre="s_"){
$path = rtrim($path,"/")."/";
//1獲取被縮放的圖片信息
$info = getimagesize($path.$picname);
//獲取圖片的寬和高
$width = $info[0];
$height = $info[1];
//2根據圖片類型,使用對應的函數創建畫布源。
switch($info[2]){
case 1: //gif格式
$srcim = imagecreatefromgif($path.$picname);
break;
case 2: //jpeg格式
$srcim = imagecreatefromjpeg($path.$picname);
break;
case 3: //png格式
$srcim = imagecreatefrompng($path.$picname);
break;
default:
return false;
//die("無效的圖片格式");
break;
}
//3. 計算縮放后的圖片尺寸
if($maxWidth/$width<$maxHeight/$height){
$w = $maxWidth;
$h = ($maxWidth/$width)*$height;
}else{
$w = ($maxHeight/$height)*$width;
$h = $maxHeight;
}
//4. 創建目標畫布
$dstim = imagecreatetruecolor($w,$h);
//5. 開始繪畫(進行圖片縮放)
imagecopyresampled($dstim,$srcim,0,0,0,0,$w,$h,$width,$height);
//6. 輸出圖像另存為
switch($info[2]){
case 1: //gif格式
imagegif($dstim,$path.$pre.$picname);
break;
case 2: //jpeg格式
imagejpeg($dstim,$path.$pre.$picname);
break;
case 3: //png格式
imagepng($dstim,$path.$pre.$picname);
break;
}
}