Documentation

Sizing Rules

This page explains how GetNewSize turns s, w, and h into output dimensions, and the default downscale applied when no size parameter is given.

Rules

Conditions are checked top to bottom; only the first match applies:

Condition Output
s set Short edge scaled to min(s, original short edge), long edge proportional
Both w and h set Scale factor from min(w, original width), whole image scaled proportionally
Only w Width scaled to min(w, original width), height proportional
Only h Height scaled to min(h, original height), width proportional
None, and original short edge > 1024 px Long edge scaled to 1024 px, short edge proportional
Otherwise Original dimensions

No rule ever upscales the original.

Edge Cases

Case Result Why
w and h both set Actual height is original height × (new width ÷ original width); h has no effect on output Resize takes a single scale factor, newWidth / originWidth
s / w / h not an integer Original dimensions, the 1024 px default is not applied A non-empty parameter enters its branch; after strconv.Atoi fails no further rule is checked
Original short edge ≤ 1024 px, no size parameter Original dimensions, still converted to the t format The default rule targets large images only

Examples

For a 4000 × 3000 original:

Request parameters Output size
(none) 1024 × 768
s=480 640 × 480
w=800 800 × 600
h=300 400 × 300
w=800&h=200 800 × 600
s=5000 4000 × 3000
中文