# 尺寸規則

本頁說明 `s`、`w`、`h` 如何換算成輸出尺寸，以及預設縮圖與邊界情況。

## 計算方式

以原圖寬 `W`、高 `H` 計算；所有目標值以原圖尺寸為上限，**不會放大**。

| 參數 | 橫圖（`W > H`） | 直圖或正方形（`W ≤ H`） |
|---|---|---|
| `s` | 高 = `min(s, H)`，寬等比例 | 寬 = `min(s, W)`，高等比例 |
| `w` 與 `h` | 寬 = `min(w, W)`、高 = `min(h, H)`，以 sharp 預設 `cover` 置中裁切 | 同左 |
| 只有 `w` | 寬 = `min(w, W)`，高等比例 | 同左 |
| 只有 `h` | 高 = `min(h, H)`，寬等比例 | 同左 |
| 皆無，且 `min(W, H) > 1024` | 寬 = 1024，高等比例 | 高 = 1024，寬等比例 |
| 皆無，且 `min(W, H) ≤ 1024` | 維持原尺寸 | 維持原尺寸 |

等比例的一邊以 `Math.floor` 取整。

## 範例

| 原圖 | 參數 | 輸出 |
|---|---|---|
| 4000×3000 | 無 | 1024×768 |
| 3000×800 | 無 | 3000×800（短邊未超過 1024） |
| 4000×3000 | `s=480` | 640×480 |
| 4000×3000 | `w=800` | 800×600 |
| 4000×3000 | `w=400&h=400` | 400×400（裁切） |
| 600×400 | `w=1200` | 600×400（不放大） |
