Skip to content

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.

UploadcareBrandcenter /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 opsa 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.webp

Two 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.