Cloudflare Demo
All demos

Media · Cloudflare Images

Store, optimize, and deliver images at the edge

Two ways to use one image platform: upload originals to Hosted Images, or keep them in your existing storage and apply remote transformations. Explore both modes, private delivery, named variants, and flexible URL options below.

Cloudflare Images primer

Understand the product

Three slides before the hands-on demos.

One image platform

Store, transform, and deliver images globally

Cloudflare Images is an end-to-end image pipeline. It turns an original into responsive, optimized renditions and delivers them from Cloudflare's global network.

Optimize dynamically

Resize, crop, compress, and select modern formats at request time.

Control delivery

Use named variants, flexible options, and signed URLs for private assets.

Original image

Upload or remote origin

Cloudflare Images

StoreTransformCache

Mobile

320px · AVIF

Web

800px · WebP

Retina

1600px · DPR 2

One original · many renditions · cached close to every viewer

Transformations

On-the-fly, URL-driven

Resize, crop, convert format, and apply effects by editing the URL — no re-upload, no build step. Every unique transformation is generated once and cached across the network.

Transform controls

Quality85
Blur0
Sharpen0

Live output

/cdn-cgi/image
Transformed output

Original image URL

https://img.orangemoussa.net/samples/mountain.jpg

Transformation URL

https://img.orangemoussa.net/cdn-cgi/image/width=600,fit=scale-down,quality=85,format=auto/https://img.orangemoussa.net/samples/mountain.jpg

The options string sits in the path — no origin re-upload, no build step. Every unique URL is transformed once and cached across Cloudflare's network.

Hosted images

Flexible variants

Build a rendition dynamically by putting width, height, fit, quality, format, and device-pixel-ratio options directly in the hosted-image delivery URL. No preset or second copy is required.

Dynamic variant controls

Change the delivery URL instead of creating a dashboard preset.

Quality85

Flexible delivery result

Generated directly from the hosted original.

Flexible variants
Mountain range at dawn with dynamic variant options

Hosted-image delivery URL

https://imagedelivery.net/_0PUoomg51B6v5GhWtqqhA/488db3b3-84dd-43b1-71ba-17a4728bdd00/w=600,h=400,fit=cover,quality=85,format=auto,dpr=1,gravity=auto

The comma-separated options replace the named variant in the final path segment. Cloudflare generates the result on demand and caches it at the edge.

Hosted images

Named variants

Upload an original once, then deliver purpose-built renditions by name. Variants are defined centrally in the dashboard — application code just references the name.

1 · Pick a hosted image

Uploaded once to Cloudflare Images. One stored original serves every variant.

2 · Choose a variant

Named presets defined once in the dashboard — no query strings to manage.

Delivered result

imagedelivery.net
Mountain range at dawn — Thumbnail

Delivery URL

https://imagedelivery.net/_0PUoomg51B6v5GhWtqqhA/488db3b3-84dd-43b1-71ba-17a4728bdd00/thumbnail

Switching variants only changes the last path segment. The origin is uploaded once; Cloudflare generates and caches each variant on demand at the edge.

Access control

Private images with signed URLs

Mark images as private and gate delivery behind short-lived HMAC-signed tokens generated on your backend. Unsigned requests are rejected.

Without a token

The image is marked require signed URLs. A direct request is rejected.

Attempting unsigned access
https://imagedelivery.net/_0PUoomg51B6v5GhWtqqhA/519a8eae-21b1-4d86-3553-9bfa184d9e01/public

With a signed token

Your backend signs the URL with an HMAC key and a short expiry.

Generate a signed URL to unlock the image.