Transformations

Transform any image you host on img.pro straight from its URL — convert formats, resize, color-correct, blur or sharpen, rotate, remove the background, or strip EXIF. No re-uploading, no extra storage. Append parameters to the URL and each distinct result is cached independently at the edge worldwide.

Transforms apply to the url field — a direct CDN URL the API returns on every upload and media response, on every plan, including anonymous. The named sizes are ready-made and included on every plan; the parameters below give you full manual control over the same url.

How It Works

Every upload and media API response includes a url field — a direct CDN URL shaped like this:

text
https://src.img.pro/4j2/abc12345.jpg

Append query parameters to transform what it serves:

text
https://src.img.pro/4j2/abc12345.jpg?format=webp&w=800&brightness=1.1

One source image, unlimited variants — each distinct URL is cached independently. Invalid values are silently ignored and the image still loads. With the default scale-down fit, images are never enlarged — requesting a larger size is a no-op; cover/crop/pad will upscale to fill the requested box.

Named sizes

The simplest transform — ready-made variants you request with ?size=. The three responsive sizes (s / m / l) ship in every response's sizes object; social is a fixed 1200×630 card requested the same way, but it isn't part of sizes. Append ?size=m to any image url when you don't want to hand-pick parameters.

ValueSizeDescription
?size=sShort side 320pxThumbnails, avatars. Aspect ratio preserved.
?size=mShort side 640pxInline previews, feed cards. Aspect ratio preserved.
?size=lShort side 1080pxFull-width hero / detail views. Aspect ratio preserved.
?size=social1200×630Fixed OpenGraph / social-card frame; any source aspect is padded to fit.
text
# Medium variant — short side 640px, aspect preserved
https://src.img.pro/4j2/abc123.jpg?size=m

Format

Append ?format= to convert on the fly. It overrides the extension in the URL path…/abc123.jpg?format=webp serves WebP even though the path says .jpg.

ValueFormatBest for
?format=webpWebPBest balance of quality and size (recommended)
?format=avifAVIFSmallest files, widening browser support
?format=jpgJPEGUniversal compatibility
?format=pngPNGLossless, transparency
?format=gifGIFLegacy compatibility; animation where WebP/AVIF aren't supported
text
# Convert a JPEG upload to WebP
https://src.img.pro/4j2/abc123.jpg?format=webp

# Convert and lift the brightness slightly
https://src.img.pro/4j2/abc123.jpg?format=avif&brightness=1.1

Background

Remove the background with a single param, optionally fill it with a solid color. Background removal uses an image-segmentation model running on the edge.

ParamValuesDescription
segmentforegroundReplace the background with transparency (output as PNG to preserve the alpha channel).
backgroundCSS named color, hex (#aabbcc — URL-encode # as %23), rgb(r,g,b), or rgba(r,g,b,a). Default #FFFFFF (white).Fill the background. Use after segment=foreground to swap the background; on its own, fills any transparent pixels in the source.
text
# Remove the background, output transparent PNG
https://src.img.pro/4j2/abc123.jpg?segment=foreground&format=png

# Remove the background and replace with white (Amazon / Shopify ready)
https://src.img.pro/4j2/abc123.jpg?segment=foreground&background=white&format=jpg

# Fill an existing transparent PNG with light gray
https://src.img.pro/4j2/abc123.jpg?background=%23f5f5f5
background takes URL-encoded hex (%23aabbcc), CSS named colors (white, black, navy, etc.), or rgb(...) / rgba(...) functions (URL-encode the parens if needed). For photos with people or products, pair it with segment=foreground for clean cutouts.

Resize & Crop

Resize and crop with explicit dimensions. With the default scale-down fit, images are never enlarged — requesting a larger size is a no-op. An explicit cover, crop, or pad fit will upscale to fill the requested box.

ParamValuesDescription
w, h1 – 4096 (px)Target width / height. Set one to scale proportionally, or both with fit to control how the image fills the box.
fitscale-down (default), contain, cover, crop, pad, squeezeHow the image fits w×h. cover/crop fill and trim; contain/pad letterbox; scale-down never enlarges.
gravityauto, face, left, right, top, bottomWhich part to keep when cropping. face centers on detected faces.
zoom0 – 1Crop tightness around gravity=face. 0 = max context, 1 = tight.
text
# 800px-wide WebP
https://src.img.pro/4j2/abc123.jpg?w=800&format=webp

# 400×400 square crop centered on faces
https://src.img.pro/4j2/abc123.jpg?w=400&h=400&fit=cover&gravity=face

Quality

Control output quality for lossy formats (JPEG/WebP/AVIF). Accepts a number or a named level.

ParamValuesDescription
q1100Explicit quality. Higher = better and larger; ~80 is a good web default.
high, medium-high, medium-low, lowNamed levels (≈ 90 / 75 / 60 / 45) when you'd rather not pick a number.
text
# Explicit quality
https://src.img.pro/4j2/abc123.jpg?format=webp&q=80

# Named level
https://src.img.pro/4j2/abc123.jpg?format=webp&q=high

Color & Tone

Tweak brightness, contrast, gamma, and saturation. Each is a decimal multiplier centered at 1 (no change). Omit the param to leave the channel untouched.

ParamRangeWhat it does
brightness0 – 10Multiplier. 1 = unchanged, 0 = pure black, 2 = twice as bright. Useful range: ~0.5 to ~2.
contrast0 – 10Multiplier. 1 = unchanged, 0 = flat mid-gray, >1 = punchier. Useful range: ~0.7 to ~2.
gamma0 – 10Multiplier. 0 and 1 = unchanged, <1 lightens midtones, >1 darkens midtones. Useful range: ~0.5 to ~2.5. (Direction is opposite of what some image editors call "gamma".)
saturation0 – 10Multiplier. 1 = unchanged, 0 = grayscale, >1 = vivid. Useful range: ~0.5 to ~2.
These multipliers are capped at 0–10. Values near the top end produce visually useless extremes (blown-out color, pure black), so treat the "Useful range" column above as your working range and step outside it only with a specific effect in mind.
text
# Slight brightness lift, classic web tweak
https://src.img.pro/4j2/abc123.jpg?brightness=1.1&contrast=1.05

# Black and white
https://src.img.pro/4j2/abc123.jpg?saturation=0

# Faded vintage look
https://src.img.pro/4j2/abc123.jpg?contrast=0.85&saturation=0.7&gamma=1.15

Blur

Apply a gaussian blur. Useful for hero overlays, placeholder images, or privacy masking.

ParamRangeDescription
blur0 – 250 (default 0)Gaussian blur radius in pixels. 10–20 for subtle, 40+ for heavy. 0 = no blur (same as omitting the param).
text
# Subtle blur for a hero background
https://src.img.pro/4j2/abc123.jpg?blur=15

# Heavy blur for a placeholder
https://src.img.pro/4j2/abc123.jpg?blur=80

Sharpen

Enhance fine detail with an unsharp-mask. Subtle values fix slightly soft photos; high values can introduce ringing on smooth areas.

ParamRangeDescription
sharp0 – 10Intensity. 1–3 subtle, 4–6 noticeable, 7+ aggressive.
text
# Subtle sharpen
https://src.img.pro/4j2/abc123.jpg?sharp=2

# Noticeable detail boost
https://src.img.pro/4j2/abc123.jpg?sharp=5

Orientation

Rotate or mirror without re-uploading. Rotation is lossless for the supported angles.

ParamValuesDescription
rotate90, 180, 270Clockwise rotation in degrees. Other values are silently ignored.
fliph, v, hvMirror horizontally, vertically, or both.
text
# Fix a sideways photo (rotate 90° clockwise)
https://src.img.pro/4j2/abc123.jpg?rotate=90

# Mirror horizontally
https://src.img.pro/4j2/abc123.jpg?flip=h

# Combine: rotate then flip
https://src.img.pro/4j2/abc123.jpg?rotate=180&flip=v

Privacy

Control what EXIF/metadata travels with the image. Cameras and phones embed GPS coordinates, device info, and timestamps; strip them before sharing.

ParamValuesDescription
metadatacopyright (default)Keep copyright/author tags only; strip GPS and device info. This is what you get when ?metadata= is omitted.
noneStrip everything (GPS, camera, timestamps, software). Recommended for any photo before public sharing.
keepPass all original metadata through, including GPS coordinates and device info. Use this only when you specifically need the original EXIF preserved.
text
# Strip all EXIF before sharing a phone photo
https://src.img.pro/4j2/abc123.jpg?metadata=none

# Keep only copyright/author tags
https://src.img.pro/4j2/abc123.jpg?metadata=copyright

Combining Transforms

Chain parameters freely. Order doesn't matter — the CDN runs everything in a single pass:

text
# WebP with a touch of warmth
https://src.img.pro/4j2/abc123.jpg?format=webp&brightness=1.05&saturation=1.1

# Faded social card
https://src.img.pro/4j2/abc123.jpg?format=jpg&contrast=0.9&saturation=0.8

# Privacy-blurred preview with EXIF stripped
https://src.img.pro/4j2/abc123.jpg?blur=40&metadata=none

# Cutout product photo on a white background
https://src.img.pro/4j2/abc123.jpg?segment=foreground&background=white&format=jpg

# Rotated, sharpened, exported to AVIF
https://src.img.pro/4j2/abc123.jpg?rotate=90&sharp=3&format=avif

Tool Pages

Most query-param operations also have dedicated tool pages — drag-and-drop landing pages that produce a downloadable result without typing any URL. They're best when you want a permanent file to download or share, rather than an inline transform on an existing link:

Tool pages are best for one-off downloads where you want the file directly. The query params above are best for inline embeds, OG previews, and anywhere the same source image needs many variants.

Caching & Performance

  • Each unique URL is cached independently at 300+ edge locations
  • Cache hit: ~5ms from the nearest data center
  • Cache miss: 50–200ms (transform + cache)
  • Invalid parameter values are silently ignored — the image still loads
  • The default scale-down fit never enlarges beyond the source; cover/crop/pad upscale to fill the requested box

Supported Formats

Transformable: JPEG, PNG, GIF, WebP, AVIF, HEIC

Served as-is: SVG, BMP, ICO (transforms are ignored, file is served directly)