EnhancePic

Photo colour correctionTake the yellow out of an indoor photo

Remove the yellow tint indoor lights leave, so white walls look white again.

Choose photoor drop it here — pasting works too

Tube light, warm LEDs and mixed sources are what this opens for. Any JPG, PNG, WebP or HEIC will do.

FreeNo sign-upPhotos stay on your device

A yellow-tinted photo of a lake print, with the tint removed in one press
What it checks first

The tool works out what colour the light was, and removes as much of it as the evidence supports. Warmth is highlighted, because the evidence is not always right.

What it reads before it changes anything

0.1st / 99.5th percentile
Black and white points
Median luminance
Exposure, in stops
Average colour vs brightest 1%
White balance, and how far to trust it
5th-to-95th spread
Contrast, and the clarity nudge
Share below the bottom two stops
Shadow lift
Mean saturation
Vibrance
Count of distinct tones
Whether this is a photograph at all

A worked example

A kitchen under warm LEDs: the median tone comes in under the band a well-exposed frame lands in, so an exposure is printed in stops; the frame’s average colour and its brightest one per cent agree closely, so the illuminant they describe is removed in full and printed in kelvin. Both lines open to show the figure they came from.

Warmth is highlighted in the Colour panel, which opens first. The kelvin figure on the What-changed strip is the light the pass decided it was looking at.

Drop a dull photo here and we'll take a first pass at it. Tube light, warm LEDs and mixed sources are what this opens for. Any JPG, PNG, WebP or HEIC will do.

What a colour cast actually is

Nothing in a photograph is the colour you remember it being. A white shirt reflects whatever light lands on it, so under a warm LED it reflects amber light and the sensor records amber. Your eyes did the same thing and then quietly discounted it — colour constancy, the adjustment that lets you walk from daylight into a kitchen without everything turning orange. The camera has one guess for the whole frame, and indoors it is frequently wrong, which is why the photograph and the memory do not match.

Correcting it means estimating the colour of the light and dividing it out. The estimate is the hard part, and there are two classical ways to make one. Grey-world assumes that everything in a scene, averaged together, is neutral, so whatever colour the average has must be the light. White-patch assumes the brightest thing in the scene is white, so whatever colour the brightest pixels have must be the light. Each is right often enough to be useful and wrong often enough to be dangerous alone.

Two estimates, and how much to believe them

This page computes both and compares them in logarithmic space, where a gain of 1.2 and a gain of 0.83 are correctly treated as the same distance from neutral. Where the two agree the correction runs at full confidence. Where they disagree it is weakened in proportion, because disagreement is the signature of a scene that is genuinely coloured — a red wall, a field, a sunset — rather than a scene that has been miscast. Removing the colour from a sunset is not a correction; it is a deletion.

What agreement does to the correction, as measured on drawn test scenes
SceneAgreementCorrection
Room under tube lightcloseapplied nearly in full
Office, mixed daylight and LEDmoderateapplied at about two thirds
Sunset over waterpoorreduced to a fraction
Green field, no skypoorreduced to a fraction

Sitting on top of the agreement weighting there is a second limit, and this one is a hard stop rather than a judgement: no single colour channel may be multiplied by more than 1.45, or by less than 0.7, whatever the estimate asks for. It is there so that a confident estimate on a genuinely coloured scene cannot scrub the scene neutral. The cost is at the other extreme — deep tungsten, a stage under one gel, a pool lit from below — where the stop binds and the photograph comes back with some of its cast still in it. Passing the result through the tool a second time picks up the remainder. The kelvin figure is how you notice: it reports only what was removed, so a residue shows up as a smaller number than the room deserved. Where that ceiling belongs is the least settled number on this site: like every other constant in the pass it was set against scenes drawn in code rather than against photographs, which the About page says at greater length.

Both estimates deliberately ignore pixels that are nearly clipped and pixels that are nearly black. A blown highlight is pure white whatever colour the light was, and shadow noise has no colour at all; averaging either into the estimate drags it toward neutral and hides exactly the cast you are trying to find.

Why the panel says kelvin

A number like “minus 1,200 K” is more useful than “white balance: corrected”, because you can check it against what you remember. The figure is the colour temperature of the illuminant the pass removed, stated as a difference from daylight, and it reports only the portion actually applied rather than the full estimate — claiming a correction that was weakened would be the easiest lie on the page to tell. Tube light and warm LEDs typically land between 800 and 2,000 K below daylight, so a figure in that range on an indoor photograph is the pass agreeing with your memory.