Photo Color Match
Give your photo the look of any other picture: drop in your image and a reference whose colors you like, and the tool shifts its color and brightness statistics to match. Dial the strength, compare before and after, and download the full-size result.
Last updated:
Channel statistics (lαβ)
| Channel | Your photo mean ± std | Reference mean ± std | Result mean ± std |
|---|
How to use the Photo Color Match
- Add your photo in box 1 (the image you want to recolor). Sample photos are loaded so you can see the effect right away.
- Add a reference in box 2: a photo, film still or painting whose colors you want to copy.
- Adjust Strength and choose whether to also match brightness and contrast.
- Compare by dragging across the image or moving the before/after divider; try the CIELAB color space for a different look.
- Press Download matched photo to save the full-size result.
The Reinhard color transfer formula
For each of the three channels c of the chosen color space, the tool computes the mean μ and standard deviation σ of your photo (t) and of the reference (r), then remaps every pixel value x:
x′ = μr + (x − μt) × σr / σt
The result keeps the shapes and details of your photo but takes on the average color and the color spread of the reference. Strength blends between the original and the fully matched value in the same color space: x″ = x + s × (x′ − x). With Match brightness and contrast turned off, the lightness channel is left untouched and only the two color channels change.
From RGB to lαβ
| Step | Operation |
|---|---|
| 1. RGB → LMS | L = 0.3811 R + 0.5783 G + 0.0402 B M = 0.1967 R + 0.7244 G + 0.0782 B S = 0.0241 R + 0.1288 G + 0.8444 B |
| 2. Logarithm | L, M, S are replaced by log10, which turns multiplicative lighting changes into simple shifts |
| 3. Decorrelate | l = (L + M + S) / √3 α = (L + M − 2S) / √6 β = (L − M) / √2 |
| 4. Transfer | Mean and standard deviation of l, α and β are matched to the reference |
| 5. Back to RGB | The inverse rotation, 10x and the inverse LMS matrix give the final RGB values |
CIELAB mode uses the standard sRGB → XYZ (D65) → L*a*b* conversion instead, where L* is lightness from 0 to 100 and a*, b* are the green–red and blue–yellow axes.
Tips for a convincing color match
- Match like with like: a sunset reference suits an outdoor scene; for portraits use a portrait reference so skin tones stay believable.
- Start at 60–80% strength: a partial match often looks more natural than a full one.
- Keep your exposure: untick Match brightness and contrast when your photo is already well exposed and you only want the color mood.
- Batch a consistent look: use the same reference for every photo in a set (an album, a product shoot, a video thumbnail series) to give them a unified grade.
- Crop the reference to the part whose colors you want if it contains large areas you do not want copied, such as a black border.
Frequently asked questions
How does photo color matching work?
The tool converts both images to a color space where lightness and the two color axes are almost independent, measures the mean and standard deviation of each channel, and then shifts and scales every pixel of your photo so its channel statistics equal those of the reference: new = (value − mean of your photo) × (std of reference ÷ std of your photo) + mean of reference. This is the color transfer method published by Reinhard, Ashikhmin, Gooch and Shirley in 2001.
What is the lαβ color space?
lαβ is a color space designed by Ruderman, Cronin and Chiao (1998) from the statistics of natural images. RGB is converted to LMS cone responses, a logarithm is taken, and the result is rotated into one lightness axis (l) and two opponent color axes (α for yellow–blue, β for red–green). Because these axes are nearly uncorrelated in photos, each one can be adjusted separately without strange color shifts.
Should I use lαβ or CIELAB?
Reinhard lαβ is the classic choice and usually gives the most natural transfer, especially for skies and landscapes. CIELAB measures color more perceptually and often gives stronger, more saturated grading. Both are quick to compare: switch the Color space menu and the preview updates instantly.
What makes a good reference photo?
Pick a reference with a similar mix of content to your photo: a landscape for a landscape, a portrait for a portrait. The method matches overall statistics, so if the reference is mostly sky and your photo is mostly grass, the grass will take on sky colors. Lower the Strength or untick Match brightness and contrast when the result looks too strong.
Why does my result look noisy or blotchy?
If your photo is very flat in one channel (for example almost gray) and the reference is very colorful, that channel gets stretched a lot, which amplifies noise and JPEG artifacts. Keep Limit extreme stretching on, which caps the scale factor between 0.4 and 2.5, or reduce the Strength.
Is this the same as applying a LUT or filter?
Not exactly. A LUT or filter applies the same fixed color change to every photo, while color matching calculates a new adjustment for each pair of images, so the result adapts to your photo's starting colors. The output is still a normal image that you can edit further.
Are my photos uploaded?
No. Both images are decoded and processed in your browser with the Canvas API. Nothing is sent to a server, and the full-size result is generated on your device when you press Download.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.