PHP 自訂尺寸等比例縮圖(jpg/png)
[更新 2018.05.25] 新版的請參閱:
下方的code有些小bug,就不要服用了。請服用新版本^^
利用php GD庫將圖片等比例縮放可自訂輸出尺寸 jpg /png 格式皆適用
本範例使用到以下函式:
getimagesize()
imagecreatetruecolor()
imagecreatefromjpeg()
imagecreatefrompng()
imagecopyresampled()
imagejpeg()
imagepng()
imagedestroy()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<? //圖片路徑 $imgfile="123.png"; //處理縮圖函式 (路徑,輸出寬度,輸出高度,輸出品質) function imgthumb($path,$width,$height,$quality){ //用來判斷圖片格式副檔名 $img_f=strrchr($path,"."); //取得原始圖片寬度、高度,分別存在 $width_o 和 $height_o list($width_o,$height_o)=getimagesize($path); //建立一個自訂寬度、高度的黑色畫布 $image_pic=imagecreatetruecolor($width,$height); //判斷副檔名,建立對應的圖像(圖像來源為原始圖片) if($img_f==".jpg"){ $image=imagecreatefromjpeg($path); }elseif($img_f==".png"){ $image=imagecreatefrompng($path); } //將圖像複製到另一個圖像(原始圖像 to 新的圖像) //imagecopyresampled(新目標圖像,原始圖像,目標X起點,目標Y起點,來源X起點,來源Y起點,目標圖像寬度,目標圖像高度,原始圖像寬度,原始圖像高度) imagecopyresampled($image_pic,$image,0,0,0,0,$width,$height,$width_o,$height_o); //判斷副檔名,使用對應函式將檔案存入 if($img_f==".jpg"){ //imagejpeg(圖像來源,儲存路徑,圖像品質) imagejpeg($image_pic,$path,$quality); }elseif($img_f==".png"){ //imagepng(圖像來源,儲存路徑,圖像品質) imagepng($image_pic,$path,9/$quality); } //釋放資源 imagedestroy($image_pic); } //呼叫函式(圖像圖徑,輸出寬,輸出高,品質) imgthumb($imgfile,150,150,75); //註:此function會直接將原始圖片覆蓋!!(可更改imgthumb內的 imagejpeg 或 imagepng 的 $path ) ?> |
很抱歉,此文章關閉留言