Image Color Adjuster Pro — Curves, Levels & White Balance
Pro-grade colour controls in your browser: curves, levels, white balance, exposure, contrast, vibrance and saturation. All adjustments compile to a single per-channel lookup table for a fast, predictable result.
Drop your JPG / PNG / WebP file hereTap to select a file
Supports JPG, PNG, WebP, up to 50MB
What to do next
Related tools
Brightness & Contrast Tool
Brighten, darken, or boost contrast on any photo with two simple sliders. Real pixel-level adjustment runs in your browser and exports a clean PNG instantly — no upload, no account.
imageSaturation Adjuster
Boost or drain colour intensity with a single 0–300% saturation slider. 0% gives a perfect grayscale, 100% leaves your photo untouched, 200%+ gives that punchy editorial look. Real PNG output.
imageLUT Color Grading
Apply cinematic 3D LUTs to a photo in your browser. Eight built-in looks ship inside the tool, plus a slot for any .cube LUT file you upload. Trilinear interpolation gives standard-spec results.
imageSharpen Image
Sharpen any photo using an unsharp-mask convolution — choose Light, Medium, or Strong preset to recover crispness in soft, slightly-out-of-focus, or downscaled images. Real PNG output processed in your browser.
imageCompress Image
Reduce image file size while preserving visual quality.
imageResize Image
Resize images to exact dimensions or percentages.
imageAbout Image Color Adjuster Pro
The Image Color Adjuster Pro gives you the colour-grading panel out of a professional photo editor inside your browser tab. Tone curve with master plus per-channel R/G/B control points. Levels with input/output black-and-white points and a gamma midtone. White balance with temperature and tint. Exposure in stops. Highlights, shadows, vibrance, saturation, hue, contrast — every primary control a colourist would expect, applied as a single fast pass over the pixels, all running locally on the canvas in your browser.
The maths is the same approach professional editors use under the hood: every adjustment compiles into a per-channel lookup table, and a single canvas pass maps every pixel through it. Naive editors apply each adjustment as a separate full-pixel pass — exposure pass, contrast pass, white balance pass — which scales linearly with the number of adjustments and produces subtle 8-bit quantization artefacts as precision compounds across passes. Compiling the LUT once keeps the working set per pixel at three byte loads plus three byte stores regardless of how many controls are stacked, which is why the result on a 25-megapixel photo finishes in milliseconds rather than seconds.
Where this tool slots into a real workflow: you have a photo that needs a quick colour pass before it goes into a presentation, a website hero, or a social-media share, and reaching for a professional photo editor is overkill. Drop the photo in, lift the shadows, drop the highlights, dial up vibrance, fix the white balance, export. For a stylised look on top, chain the result into LUT Color Grading, which applies industry-standard .cube LUTs with trilinear interpolation. For sharpening after the colour pass, chain into Sharpen Image. The three tools together cover the same ground as a professional photo editor's Develop module Basic, Tone Curve, and Detail panels — minus the masking, healing and lens-correction features that are out of scope for a free single-tool workflow.
The HTML5 Canvas API does the entire pipeline locally; the photo bytes stay on your device, and the export is a direct download. PNG output preserves transparency for downstream compositing; JPG output flattens to white first to avoid the standard transparency-becomes-black mistake. The 50 MB upload cap covers everything from a phone photo to a high-resolution mirrorless export — RAW originals from a DSLR exceed that, but you would normally process those in a professional RAW developer and bring the rendered intermediate here for trim adjustments anyway.
How it works
- 1Drop a JPG, PNG or WebP photo onto the upload area. Files up to 50 MB are accepted.
- 2Adjust the controls: white balance temperature/tint, exposure stops, contrast, highlights, shadows, vibrance, saturation, hue, plus tone-curve and levels controls for fine-grained tonal mapping.
- 3Every adjustment compiles into a single per-channel lookup table — the same approach professional photo editors use internally for their develop modules.
- 4A single canvas pass maps every pixel through the composite LUT, then any HSL controls (hue / saturation / vibrance) are applied in a second short pass.
- 5Pick PNG output to preserve transparency or JPG output for the smallest file. Quality slider exposes 0.1 to 1.0 for JPG export.
- 6Download the result. Chain through LUT Color Grading or Sharpen Image to extend the colour-grading workflow.
Common use cases
- Fix the white balance on a smartphone photo shot under fluorescent office lighting before posting on LinkedIn
- Lift shadows and recover highlights on a holiday photo where the sun blew out the sky and shaded the foreground
- Pre-grade a product shot for an Etsy listing — reduce yellow cast, boost vibrance, push the contrast gently
- Apply a quick colour pass on a video thumbnail before exporting it to YouTube
- Calibrate a stack of phone photos to a consistent look before assembling them into a slideshow or collage
- Match a brand-colour palette by tweaking saturation and hue on lifestyle photography for a marketing email
FAQ
What kinds of adjustments are supported?
Tone curve (master plus per-channel R/G/B), levels (input black/white points + gamma), white balance (temperature/tint), exposure, contrast, highlights, shadows, vibrance, saturation, hue, and clarity. Each control compiles to a per-channel lookup table for a single fast pass over the pixels.
Which controls does it expose?
Tone curve (master plus per-channel R/G/B), levels (input black/white plus gamma), white balance (temperature/tint), exposure, contrast, highlights, shadows, vibrance, saturation, hue, and clarity. Each control compiles into a per-channel lookup table for a single fast pass over the pixels.
Will my photo upload anywhere?
No. Every adjustment runs through the HTML5 Canvas API inside your browser tab. The image bytes stay on your device.
How big can the input be?
Up to 50 MB. Larger files are typically RAW originals — convert those to a JPEG or 16-bit TIFF in your camera-RAW workflow first, then bring the rendered result here for trim adjustments.
Does it preserve transparency?
Yes. Output is PNG, which preserves any alpha channel from a transparent source. Toggle JPG in the export options if you need a smaller file and the source has no transparency.
Is this really equivalent to a professional photo editor?
For the Develop module Basic, Tone Curve and a subset of HSL panels, yes — the maths is identical, and the per-channel LUT approach is exactly what professional photo editors use under the hood. Where a professional photo editor pulls ahead is in features that are out of scope for a single tool: calibration profiles, lens correction, healing, masking, batch presets, and 16-bit precision throughout the pipeline. For free single-photo edits where your output is going to a screen at JPG/PNG quality, the gap is invisible.
Will my photo be uploaded?
No. Every adjustment runs through the HTML5 Canvas API in your browser tab. The image bytes stay on your device and the export is a direct download.
Does it work on RAW files?
No — RAW formats (CR2, NEF, ARW, DNG) need a debayering decoder we do not currently ship. Convert your RAW to a 16-bit TIFF or high-quality JPEG in a professional RAW developer first, then bring that rendered intermediate here for trim adjustments.
How is this different from Brightness/Contrast or Saturation Adjuster?
Those tools each expose a single primary slider as a quick fix. This tool gives you the entire colour-grading panel — curves, levels, white balance, vibrance, hue, plus all the simple sliders together — and compiles them all into one fast pass. Use Brightness/Contrast for a one-click fix; use this when you actually want to grade.
Why are the results sometimes posterised?
Aggressive curves or extreme levels collapse the 8-bit input into fewer than 256 distinct output values; the gaps show as visible bands in smooth gradients (most often skies). The fix is gentler curves — pull the points within a few units rather than dragging them across the diagonal.
Does it preserve transparency?
Yes when exporting PNG. JPG cannot represent transparency, so the tool paints a white background under any transparent pixels before the JPG export — the standard fix for the "transparency becomes black square" issue you see in naive canvas exports.
How big can the input be?
Up to 50 MB. The processor holds the input plus the per-channel LUTs in memory; 50 MB keeps mobile browsers stable. Most JPEGs and PNGs are well under that ceiling unless you are working with multi-shot panoramas or RAW exports.