文件

尺寸計算

本頁說明 GetNewSize 如何依 s、w、h 決定輸出尺寸,以及未帶尺寸參數時的預設縮圖規則。

規則

條件由上而下判斷,只套用第一個成立的:

條件 輸出
s 有值 短邊縮至 min(s, 原短邊),長邊等比例
w 與 h 皆有值 依 min(w, 原寬) 計算縮放比,整張等比例縮放
只有 w 寬縮至 min(w, 原寬),高等比例
只有 h 高縮至 min(h, 原高),寬等比例
皆無,且原圖短邊 > 1024 px 長邊縮至 1024 px,短邊等比例
其他 維持原尺寸

所有規則都不放大原圖。

邊界行為

情境 結果 原因
w 與 h 同時指定 實際高度為 原高 × (新寬 ÷ 原寬),h 不影響輸出 Resize 只接收單一縮放比 newWidth / originWidth
s/w/h 不是整數 維持原尺寸,不套用 1024 px 預設 參數非空即進入該分支,strconv.Atoi 失敗後不再往下判斷
原圖短邊 ≤ 1024 px 且無尺寸參數 原尺寸輸出,仍會轉成 t 指定格式 預設規則只處理大圖

範例

以 4000 × 3000 的原圖為例:

請求參數 輸出尺寸
(無) 1024 × 768
s=480 640 × 480
w=800 800 × 600
h=300 400 × 300
w=800&h=200 800 × 600
s=5000 4000 × 3000
EN