A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.
Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.
✳
✳
✓ Free to use✓ No sign-up✓ 500+ possibilities
About this tool
The Brightness, Contrast & Saturation Adjuster applies per-pixel color transformations to your image in real time using the HTML5 Canvas API. Brightness shifts all channels up or down uniformly. Contrast uses a linear scaling formula (derived from the classic contrast enhancement algorithm) that expands or compresses the tonal range around the midpoint. Saturation blends each pixel between its grayscale equivalent and its original color. Sliders update the canvas instantly for a live preview before you download.
Why use it
Real-time per-pixel processing with instant canvas preview
No server upload — images stay on your device
All three adjustments in one place — no switching between tools
Reset button lets you start over without re-uploading
Free forever — no Lightroom subscription needed for basic tonal corrections.
Works on any device with a modern browser, including iPad and mobile.
How to use
- Upload your image using the file picker
- Drag the Brightness slider left (darker) or right (brighter)
- Drag the Contrast slider to increase or reduce tonal range
- Drag the Saturation slider left to desaturate or right to boost color vividness
- Click 'Reset' to return all sliders to zero
- Click 'Download PNG' to save the adjusted image
- Use the Reset button between experiments to compare different adjustment combinations from the same starting point.
When it helps
- When a photo looks too dark or overexposed and needs quick correction
- When you want to make a faded image pop with a contrast boost
- When desaturating an image for a black-and-white effect
- When preparing images for web use with consistent brightness and contrast
- When batch-editing screenshots so the brightness matches across a documentation set.
- When prepping team headshots to a consistent contrast level before publishing on a website.
Examples
01Underexposed photo recovery
InputA 2400x1600 dim outdoor photo with brightness -30 in the histogram
Expected resultSame image with brightness +25, contrast +15 — much more readable for sharing
InputA 1080x1080 product photo at default tones
Expected resultSame image with saturation -25, contrast -10 for a soft editorial feel
03Punchy social media edit
InputA 1920x1080 landscape photo straight out of camera
Expected resultSame image with brightness +5, contrast +20, saturation +15 for a vivid Instagram look
Tips
- Adjust brightness first to set the overall tonal level, then contrast to expand the range, then saturation to fine-tune color — applying in this order avoids clipping.
- Slight negative saturation (-10 to -20) gives a 'matte' editorial look popular for blog photography.
- Combine +20 contrast with -15 brightness to recover detail in overexposed images.
- For consistent batch results, note your slider values — applying the same triple to a series of photos creates a unified look.
- If colors clip to pure white or black, dial brightness back toward zero before increasing contrast further.
Frequently Asked Questions
What does the Contrast slider actually do?⌄
It applies the formula: factor = (259 × (c + 255)) / (255 × (259 − c)), then scales each channel around 128. Positive values expand the range; negative values compress it.
Does adjusting saturation to -100 produce a true grayscale?⌄
Yes. At -100 saturation, each pixel is fully replaced with its luminance value (0.299R + 0.587G + 0.114B), which is the standard perceptual grayscale formula.
Can I stack multiple adjustments?⌄
All three sliders are applied simultaneously on every canvas refresh, so you can combine brightness, contrast, and saturation freely.
Will the output be the same resolution as the input?⌄
Yes. The canvas is set to the image's natural pixel dimensions, so no scaling occurs.
Is this non-destructive editing?⌄
The original pixel data is stored when you upload. Every slider change re-processes from the original, so adjustments are always reversible until you download.
What output format is supported?⌄
PNG is the output format, preserving all color depth and any transparency in the original image.
Are very large images slow to adjust?⌄
Images above 12 megapixels can take a fraction of a second per slider change because the per-pixel loop iterates millions of values. Subsequent adjustments are equally fast — there is no compounding overhead.
Can I save my slider values as a preset?⌄
Not currently. Note the values manually if you want to apply the same edit to a future image.
Glossary
- Brightness
- A uniform additive shift applied to every channel — positive values lighten, negative values darken without changing relative tones.
- Contrast
- The ratio between dark and light tones — higher contrast pushes shadows darker and highlights lighter around the midpoint (128).
- Saturation
- The intensity or purity of color — zero saturation produces grayscale; higher values exaggerate the difference between colors.
- Luminance (Rec.601)
- The standard formula 0.299R + 0.587G + 0.114B used to convert color to perceptual brightness when desaturating.
- Color clipping
- When a channel value exceeds 255 or drops below 0, it is clamped — reducing detail in highlights or shadows.
- Tonal range
- The spread between the darkest and lightest pixels in an image — contrast adjustments expand or compress this range.
- ImageData
- A Canvas API object containing the raw RGBA pixel array of the image, the data structure modified by each slider change.