Light & colour

Adjust curves

Adjust the tone curve of a photo online — lift shadows, hold highlights and grade each channel with a real point curve, free and 100% private, in your browser.

100% private — your photos are processed in your browser and never leave your device.

S-curve
Upload your image to adjust curves

Drag and drop file to here to upload.

Types we support:avifbmpcurgifheicheificojfifjp2jpegjpgpjppjpegpngtiftiffwebpxbm
…or try one of the sample images:
Author: Volker ThimmVolker Thimm
Author: Thien Phuoc PhuongThien Phuoc Phuong
Author: Atlantic AmbienceAtlantic Ambience
Author: Alexas FotosAlexas Fotos
Author: Tonmoy BhaktaTonmoy Bhakta
Author: athul santhoshathul santhosh

Adjust curves online — bend a real tone curve to lift the shadows, hold the highlights and set the contrast of a photo exactly where you want it. PIXLFLW works entirely in your browser: your photo is processed locally and never uploaded to a server.

What you can do

  • Point curve with any number of points — click to add a point, drag to bend the curve, double-click to remove it.
  • Five channels — RGB for overall tone, Luma for brightness that keeps colors intact, and R, G and B for color grading.
  • Histogram behind the curve — see where the tones of your photo actually sit while you drag.
  • Presets to start from — contrast, soft contrast, faded film, matte, cross process, bright and moody.

How to adjust curves on a photo

  1. Drop an image into the upload area (formats: GIF, JPG, BMP, PNG, WEBP, HEIC, TIFF).
  2. Drag a point on the diagonal: up brightens the tones under it, down darkens them.
  3. Switch channels if you want to grade colors, then download as JPG or PNG.

What an S-curve does

The most useful move in a tone curve editor is the S: push the shadows a little further down, pull the highlights a little further up, and leave the mid-tone where it is. That adds contrast where the eye notices it without the washed-out look a plain brightness slider gives you. The opposite shape — lifting the black point and pulling the whites back — gives the faded, matte look of scanned film.

RGB, Luma and the color channels

The RGB tab bends all three channels at once, so it changes brightness and contrast together. The Luma tab changes brightness only: the luminance of every pixel is mapped through the curve and its red, green and blue are rescaled around it, so hue and saturation survive. The R, G and B tabs are where color grading happens — warm shadows and cool highlights, or a cross-processed look with red lifted and blue pulled down.

Curves are a non-destructive step — reopen the operation and move the points at any time before export, and the original file is never touched.

Questions

Frequently asked questions

01How do I adjust curves on a photo online?

Upload the image, add the Curves step and drag a point on the diagonal line. Pulling a point up brightens the tones under it, pulling it down darkens them — click an empty spot to add another point, double-click one to remove it. Nothing is uploaded: the curve is applied in your browser.

02What does an S-curve do?

An S-curve pushes the shadows down and the highlights up while leaving the mid-tone in place, which is the classic way to add contrast without a flat brightness boost. The Contrast preset builds one for you; drag its points to make it gentler or stronger.

03What is the difference between the RGB, Luma and R/G/B tabs?

RGB bends all three channels together, so it changes both brightness and contrast. Luma changes brightness only and rescales the channels around it, so colors keep their hue and saturation. The R, G and B tabs bend one channel each — that is how split-toning and cross-process looks are made.

04Are my photos uploaded to a server?

No. PIXLFLW runs entirely in your browser: images are opened, edited and exported locally on your device and are never uploaded, stored or seen by anyone.

05Is it really free? Are there watermarks or limits?

Yes, completely free — no sign-up, no watermarks and no daily limits. The only practical limit is your browser memory for very large files (up to 20 MB per image).