Migrating from Uploadcare
The /i/ grammar covers the basic operation set one-to-one. The
structural differences: ops are comma-separated key:value pairs (not
/-/op/value/ segments), the order is fixed, and the output format is the
file extension rather than a format op.
| Uploadcare | Brandcenter /i/ |
|---|---|
-/preview/300x200/ | w:300,h:200 (fit inside, aspect preserved) |
-/resize/300x/ | w:300 |
-/resize/x200/ | h:200 |
-/resize/300x200/ (stretch) | w:300,h:200,fit:fill |
-/scale_crop/300x200/ | w:300,h:200,fit:cover |
-/crop/…/ | c:{x}:{y}:{w}:{h} (normalized 0–1 rect) |
-/format/webp/ | the .webp extension |
-/quality/better/ | q:hi (tiers: eco / std / hi) |
-/rotate/90/ | fx:rotate:90 |
-/mirror/ | fx:flop |
-/flip/ | fx:flip |
-/grayscale/ | fx:grayscale |
-/blur/20/ | fx:blur:20 |
-/sharp/{n} | fx:sharpen:{n} |
-/enhance/ | a brand preset (auto-enhance is a styling decision) |
-/scale_crop/…/smart/ | a brand preset (smart behavior is managed data) |
-/setfill/…/ + padding ops | a brand preset |
Worked example:
…cdn.com/{uuid}/-/scale_crop/400x400/-/grayscale/-/quality/better/
https://img.brandcenter.io/i/{brand}/{fileId}/{rev}/w:400,h:400,fit:cover,q:hi,fx:grayscale.webpTwo things Uploadcare users gain here:
- Presets as data. Anything brand-styled (smart crops, padding, fills) becomes a named, retunable preset instead of ops frozen into thousands of URLs.
- Optional signing. Everything renders unsigned; a signature upgrades a stored URL to the durable tier.
CloudFront-era resize URLs (?w=…&h=…-style) map the same way: width and
height go to w:/h:, and the default fit-inside behavior matches.