Brightness and Contrast Editor
Six real tone controls with a live histogram, so you can see exactly where your pixels sit instead of guessing. Exposure in stops, gamma for midtones, black and white points, and one-click auto levels. Everything is collapsed into a single lookup curve, so it stays instant on any photo — in your browser.
Drop images here
or click to browse · or paste with Ctrl+V
JPG · PNG · WebP · GIF · BMP · AVIF
Multiplies every value, like a camera setting.
Shifts every value by a fixed amount.
Pushes values away from the midpoint.
Lifts midtones without moving black or white.
Levels
Presets
Your images are never uploaded. The curve is built and applied inside this browser tab.
People also use
Everything this tool does
Live histogram
The brightness distribution redraws as you drag, with clipping warnings at both ends. It is the difference between adjusting a photo and guessing at it.
Exposure in real stops
Multiplicative, exactly like a camera. Plus one stop doubles every value, which preserves the relationships between tones instead of flattening them.
Gamma for midtones
Bends the curve rather than shifting it, so shadows open up while black stays black and highlights stay put. This is what people usually want.
Black and white points
Set which value becomes pure black and which becomes pure white, then everything stretches to fill the range. The same operation as a professional levels tool.
One-click auto levels
Reads the histogram, finds where the real data starts and ends ignoring the outer half percent, and sets the points there. Usually the best single fix for a flat image.
One lookup curve
All six adjustments collapse into a single 256-entry table before any pixel is touched, so a 50 megapixel photo costs the same colour maths as a thumbnail.
Drag-to-compare preview
A split handle wipes between original and adjusted, which is the only reliable way to judge a change your eye has already adapted to.
Batch with one ZIP
Apply one curve across a whole shoot taken in the same light and download everything as a single archive.
Transparency preserved
The alpha channel is untouched for PNG and WebP output, so only visible pixels are adjusted.
Nothing is uploaded
No server, no queue, nothing stored to delete afterwards. Close the tab and every trace goes with it.
Which control fixes which problem
Most tone problems have one correct control and several that half-work. This maps the symptom you can see in the histogram to the slider that actually addresses it.
| Problem | Histogram shape | Use this | Not this |
|---|---|---|---|
| Whole photo too dark | Bunched against the left | Exposure +0.5 to +1.5 | Brightness, which flattens contrast |
| Only the shadows are dark | Long left tail, decent peak | Gamma above 1 | Exposure, which blows the highlights |
| Flat and hazy | Narrow spike, gaps at both ends | Auto levels | Contrast alone, which keeps the haze |
| Washed-out scan | Whites sitting around 210 | White point down to 215 | Brightness down, which greys the text |
| Too contrasty already | Piled at both edges | Contrast negative | Nothing recovers clipped detail |
| Grey document background | Peak around 180-200 | Black 40, white 215, contrast up | Exposure, which greys the text too |
| Blown sky | Spike hard against the right | Reduce exposure, accept some loss | Contrast, which makes it worse |
6
tone controls
±3
stops of exposure
0
files uploaded
256
entry lookup curve
ZIP
batch download
Free
no account needed
FlipMyFormat vs other tone tools
| Capability | FlipMyFormat | Typical free tool |
|---|---|---|
| Files stay in your browser | ||
| Live histogram with clipping warnings | ||
| Exposure in stops, not just brightness | ||
| Gamma and black or white points | ||
| One-click auto levels | ||
| Batch ZIP download without paying | ||
| No watermark on the output |
How to fix a dark or flat photo
The reason people reach for brightness and end up disappointed is that brightness is almost never the control the problem calls for. A photo that is dark overall — underexposed at capture, everything uniformly too low — wants exposure, because exposure multiplies, so a pixel at 20 and a pixel at 200 both move proportionally and the relationships between tones survive; brightness adds a fixed amount to everything, which lifts your blacks off the floor and leaves the image grey and flat even though it is technically brighter. A photo where only the shadows are too dark, which is far more common, wants gamma instead: it bends the curve so the middle rises while 0 stays 0 and 255 stays 255, opening up detail in the dark areas without touching a correctly exposed sky. And a photo that is simply flat — hazy, low contrast, the histogram a narrow spike with empty space at both ends — wants neither, because there is nothing wrong with its brightness at all; it wants the black and white points moved inward to where its data actually starts and stops, which is exactly what auto levels does in one click. The histogram is what tells you which of those three you are looking at, and it is the reason this tool shows one live rather than making you guess. Read it first, pick the matching control, and watch the edges as you drag: the moment the bars pile up hard against the left or right, you have stopped adjusting the image and started deleting parts of it, and no later slider recovers what clipping removes.
- 1
Add your images
Drag them in, click to browse, or paste with Ctrl+V. A set shot in the same light can share one curve.
- 2
Read the histogram, then choose
Bunched left means exposure. Long left tail means gamma. Narrow spike with gaps means auto levels.
- 3
Apply and save
Press Apply, then download individually or take the batch as one ZIP. Change anything and press Re-apply.
Reading a histogram
What the shape means
The horizontal axis is brightness from black to white and the height of each bar is how many pixels sit at that level. There is no correct shape — a night scene should be weighted left and a snow scene right — but there are two clear warnings. A tall spike hard against either edge means pixels are piled at the limit, which is clipping: detail has been flattened into pure black or pure white and cannot be recovered. Large empty gaps at both ends mean the image is not using the range available, which is what flat and hazy looks like numerically.
Why the order of operations matters
Exposure runs first, then brightness, contrast, gamma, and finally the black and white points. Each operates on the result of the last, so the same numbers in a different order would give a different picture. Putting levels last is deliberate: whatever the earlier sliders did, the stretch always maps your chosen points to true black and true white, so the final image fills the range. All of it is folded into one 256-entry curve before a single pixel is read, which is why dragging stays smooth.
What people use it for
Rescuing indoor photos
Phone shots taken in poor light are usually recoverable by a stop of exposure plus a little gamma.
Cleaning up scans
Black point up and white point down turns a grey, washed-out scan into crisp dark text on clean paper.
Product listing consistency
Apply one curve across a shoot so every item photographed in the same light matches on the page.
Preparing images for print
Screens are brighter than paper, so a small exposure reduction and a contrast lift usually gets you closer.
Flattening for grading
The flat preset lowers contrast to give you a neutral base before applying a duotone or colour treatment.
Making text readable
A contrast boost on a photographed whiteboard or receipt often makes it legible without any other work.
Matching a photo set
Use the histogram to bring several images to a similar distribution so a gallery feels coherent.
Web performance
A cleaner tonal range compresses better, so a properly levelled image is often a smaller file too.
Six tips worth knowing
Try auto levels first on any flat image. It is one click and it solves the most common problem better than manual sliders usually do.
Watch the histogram edges, not the picture, while dragging contrast. The moment bars pile against an edge you are deleting detail permanently.
Use gamma rather than brightness when only the shadows are dark. Brightness lifts your blacks off the floor and leaves everything grey.
Fix tone before colour. Contrast changes how saturated an image appears, so doing saturation first means doing it twice.
For documents, black around 40 and white around 215 with contrast up beats any amount of brightness adjustment.
Underexposure is recoverable to about one and a half stops on a decent file. Past that you are amplifying noise, not revealing detail.
Troubleshooting
The photo got brighter but looks washed out
You used brightness where exposure or gamma was needed. Reset, then try exposure for an overall lift or gamma for shadows only.
The sky turned into a solid white shape
Highlights have clipped. Reduce exposure or contrast until the histogram stops piling against the right edge — that detail cannot be recovered once saved.
Auto levels made it worse
Your image probably has a few extreme pixels, like a specular highlight or a black border, skewing the ends. Set the points manually instead.
I can see banding in the sky
Stretching a narrow range across the full scale spreads fewer levels further apart. Use a gentler stretch, export PNG, or add a little film grain to break it up.
Frequently asked questions
How do I adjust brightness and contrast online?
Drop your photo onto the tool and drag the sliders. The preview and the live histogram both update as you move them, and the compare handle wipes between original and result. Press Apply and save. Nothing is uploaded — the whole adjustment runs in your browser.
What is the histogram actually telling me?
It counts how many pixels sit at each brightness level, from black on the left to white on the right. Its shape is the fastest way to diagnose a photo: a hump crammed against the left means underexposed, a hump against the right means overexposed, and a narrow spike in the middle with empty space at both ends means flat and low contrast. Watching it move as you drag a slider tells you far more than the numbers do.
What is the difference between exposure and brightness?
Exposure is multiplicative and measured in stops, exactly like a camera setting — plus one stop doubles every value, so a pixel at 60 becomes 120. Brightness is additive: it shifts every value by a fixed amount regardless of how bright it already was. Exposure preserves the relationships between tones and usually looks more natural on a photograph; brightness is blunter and flattens contrast as a side effect.
When should I use gamma instead of brightness?
When you want to lift the midtones without moving black and white. Gamma bends the curve rather than shifting it, so shadows and midtones open up while your highlights stay put and your blacks stay black. That is almost always what people actually want when they say a photo is too dark, and it is why brightness alone tends to produce a washed-out result.
What do the black point and white point do?
They set which input value becomes pure black and which becomes pure white, then stretch everything in between to fill the range. Setting black to 40 and white to 215 takes a flat, hazy image and expands it to full contrast. It is the same operation as the levels tool in professional software, and it is the correct fix for a low-contrast scan.
What does auto levels do?
It reads the histogram, finds where your real data actually starts and ends — ignoring the outermost half a percent at each end so a few stray pixels cannot skew it — and sets the black and white points there. On a flat or hazy image it is usually the single most effective one-click fix available, and you can adjust it afterwards.
Why does raising contrast lose detail?
Contrast pushes values away from the middle, so anything already near 0 or 255 gets pushed past the limit and clipped. Once clipped, that detail is gone permanently — a bright sky becomes a solid white shape with no cloud texture. Watch the histogram: when you see it pile up against either edge, you are destroying information.
In what order are the adjustments applied?
Exposure first, then brightness, then contrast, then gamma, and finally the black and white points. That order matters because each one operates on the output of the last. It also means the levels stretch happens after everything else, so it always fills the full range regardless of what the earlier sliders did.
Are my photos uploaded to a server?
No. The curve is built and applied in your own browser using the canvas API. Nothing is sent anywhere, and the tool keeps working if your connection drops after the page has loaded.
Why is it instant even on a huge photo?
Because all six adjustments are collapsed into a single 256-entry lookup table before any pixel is touched. Each pixel then costs one array read instead of six calculations. The colour maths is a fixed cost no matter whether the image is one megapixel or fifty.
Can I fix an underexposed photo with this?
Up to a point. Raising exposure recovers detail that is genuinely recorded but dark. What it cannot do is invent detail that was never captured — if an area was so dark that it recorded almost nothing, lifting it reveals noise rather than a picture. One to one and a half stops is usually recoverable from a decent file; beyond that expect visible noise.
Can I process several photos at once?
Yes. Add as many as you like and identical settings are applied to every one, which is what you want for a set shot in the same light. Download individually or take the whole batch as a single ZIP.
Which file formats are supported?
Anything your browser can decode: JPG, PNG, WebP, GIF (first frame), BMP, and AVIF or HEIC where supported. You can keep the original format or export as PNG, JPG or WebP.
Is transparency preserved?
Yes for PNG and WebP output. The alpha channel is untouched and only visible pixels are adjusted. JPG has no alpha, so transparent areas are filled with the colour you choose first.
Does adjusting tone reduce image quality?
The lookup itself adds nothing, but any value pushed past 0 or 255 is clipped and cannot be recovered, and stretching a narrow range across the full scale can make banding visible because you are spreading fewer levels further apart. Working from a high-quality original and exporting to PNG both help.
Should I fix tone before or after other edits?
Before. Contrast changes how colourful an image appears, so adjusting saturation first and tone second means redoing the saturation. Tone first, then colour, then effects like grain or vignette last, because those depend on the tonal range being settled.
Does this remove EXIF data?
Yes. Re-encoding from the canvas drops camera model, GPS coordinates, timestamps and other metadata. If you want to strip metadata without changing the picture, use the remove EXIF tool instead.
Does the tool add a watermark or need an account?
No to both. No sign-up, no email wall, no daily limit and no watermark. The output is your image with the curve applied and nothing else added.