Why colours shift after compression (ICC profiles)

If your image looks flat, dull or oddly oversaturated after processing, the pixels are probably fine. What changed is the instruction telling software how to interpret them.

The essentials

What an ICC profile is
A description of what the numbers in the file mean as actual colours.
Default assumption
With no profile, software assumes sRGB.
Classic symptom
A wide-gamut image looks flat and dull after the profile is stripped.
Opposite symptom
An sRGB image tagged as wide-gamut looks oversaturated.
Safe for the web
Convert to sRGB and embed it, or convert and strip it.
Never do
Strip a wide-gamut profile without converting the pixels first.

Understanding the shift

A profile is a unit, not a picture

The numbers in an image file do not mean anything on their own. A pixel recorded as 255 in the red channel means "the most red this colour space can express" — and how red that actually is depends entirely on which colour space you mean.

The most saturated red in sRGB is noticeably duller than the most saturated red in Display P3 or Adobe RGB. Same number, different colour. The ICC profile is the label saying which one applies.

Strip the label and software falls back to assuming sRGB. If the file was actually Adobe RGB, every colour is now being interpreted against a narrower scale than it was recorded on, and the image looks flat and desaturated.

The two failure modes

Wide-gamut file, profile removed
Reads as sRGB. Colours look dull, flat and washed out. Most common when exporting from Lightroom or Photoshop in Adobe RGB and then stripping metadata.
sRGB file, tagged as wide-gamut
Reads as a larger space than it was made for. Colours look oversaturated and slightly wrong, particularly skin tones.

Both look like a compression fault and neither is one. The pixel values are unchanged; only the interpretation moved.

Converting versus stripping

These are different operations and confusing them is the root of most colour problems.

Converting recalculates every pixel so it looks the same in the new colour space. An Adobe RGB image converted to sRGB has different numbers in it, chosen so the visible colour stays as close as the smaller space allows. This is safe.

Assigning or stripping changes only the label. The numbers stay as they were and are now interpreted differently, so the image visibly changes. This is what causes the shift.

The safe sequence for the web is always: convert to sRGB first, then decide whether to embed the profile.

What to do for the web

Convert to sRGB. Browsers handle sRGB correctly and universally, and colour-managed workflows outside it are unreliable across the range of devices real visitors use.

Then either embed the sRGB profile — a few kilobytes, and unambiguous — or strip it, since sRGB is what software assumes anyway. Embedding is the safer default; stripping is defensible when every kilobyte counts, provided the pixels were genuinely converted first.

Keep wide-gamut for print masters and for editing, where the extra range is genuinely used.

What this site's tools do

These tools decode your image and re-encode it through a browser canvas, which operates in sRGB. That means a wide-gamut image processed here comes out as sRGB — the browser converts the pixels as part of decoding, so the colours are translated rather than merely relabelled.

For images headed to the web that is the correct outcome. For a print master in Adobe RGB or ProPhoto it is not: you would be discarding gamut you intend to use. Compress copies for the web and keep the wide-gamut master untouched.

This is a real limitation of doing the work in a browser, and it is worth knowing before you process anything colour-critical.

CMYK, briefly

Browsers work in RGB. A CMYK JPEG loaded into a canvas is converted to RGB before anything else happens, and saturated cyans, oranges and deep blues can shift noticeably in the process.

That conversion is not a defect — it is what has to happen for the image to be displayed at all. Do web work in RGB, keep a separate CMYK master for print, and never round-trip between them.

Try it yourself

Everything below runs in your browser, so you can test any of this on your own files without uploading them.

  • Compress JPEG

    Shrink JPG and JPEG photographs with a quality slider or an exact target size.

    Open the tool
  • Compress PNG

    Lossless by default, with transparency carried through untouched.

    Open the tool
  • JPG to WebP

    Typically 25–35% smaller at matched quality. The standard web win.

    Open the tool
  • Remove EXIF data

    Strip GPS coordinates, camera model and timestamps before you publish.

    Open the tool

Questions

Frequently asked questions

Every answer below is present in the page source, expanded, so it can be read without opening anything.

Why do my images look washed out after compressing?

Almost certainly a colour profile problem rather than a compression one. If the image was in Adobe RGB or another wide-gamut space and the profile was removed without converting the pixels, software now reads those numbers as sRGB — a narrower space — and everything looks flat.

Should I embed the ICC profile?

For the web, convert to sRGB and then either embed it or strip it — sRGB is what software assumes by default. Embedding costs a few kilobytes and removes any ambiguity, so it is the safer choice unless size is critical.

What is the difference between converting and assigning a profile?

Converting recalculates the pixel values so the image looks the same in the new space. Assigning or stripping only changes the label, leaving the numbers to be interpreted differently — which is exactly what makes colours shift.

Does stripping metadata remove the colour profile?

Often yes, and that is where this problem usually starts. It is harmless for an image already in sRGB and damaging for a wide-gamut one. Convert to sRGB before stripping and there is nothing to go wrong.

Which colour space should I use for the web?

sRGB. It is what browsers assume, what the great majority of displays approximate, and what avoids every problem on this page. Keep Adobe RGB or ProPhoto for editing and print work.

Why did my CMYK image change colour?

Browsers work in RGB, so a CMYK file is converted before it can be displayed or processed. The two describe overlapping but different ranges of colour, so some conversion is unavoidable. Keep a separate CMYK master for print rather than round-tripping.

From the blog

Related reading

Longer, more practical guides from the blog.

  • Practical Guides

    How to Compress Images for a Website Without Wrecking Them

    Resize before you compress. Measured on one photograph: half the width at quality 80 produced a 16.4 KB file, while full width at quality 40 produced 20.6 KB and looked far worse. The order of operations matters more than the settings.

    8 min read

  • Image Compression

    JPEG Quality Settings Explained: What the Number Actually Means

    Quality 80 is not 80% of anything. It is an index into a quantisation table. Measured on one photograph: dropping from 100 to 90 removes 77% of the file and 4.2 dB of fidelity; dropping from 40 to 30 removes 17% and costs almost as much.

    8 min read

  • Practical Guides

    How to Strip EXIF Data From Photos, and What Breaks When You Do

    A photograph from a phone can carry the coordinates of the place it was taken, the camera serial number and the exact timestamp. Removing that data is straightforward. Removing it carelessly rotates your photos sideways.

    9 min read