Why Image Colors Change: ICC Profiles, Assigning, and Converting
Understand what RGB profiles mean, inspect real assign-versus-convert files, and prepare a web copy without guessing at color.
On this page
For an ordinary web delivery, start with a known source profile, convert a delivery copy to sRGB when needed, and retain its color profile. Assigning a different profile is a different operation: it changes what the existing RGB numbers mean. Neither step guarantees identical color on every screen.
You finish a still life with a red ceramic bowl, blue linen, and green leaves. The composition survives export, but the red suddenly feels louder. Before pulling down saturation, check whether the file's color description changed. Otherwise you may alter the artwork to compensate for a delivery mistake.
This guide separates the file, its interpretation, and the display. The scene below is an original AI-generated teaching illustration. We also provide three genuinely processed files so you can inspect assignment and conversion without treating a stylized before-and-after as proof.

Set one delivery task before changing color
Use this hypothetical brief: supply a 768 × 512 image for a website; preserve the chosen composition; deliver an sRGB file with its profile attached; keep the original separately. The recipient wants a predictable image file, not a file tailored to your particular monitor. A print version would need its own agreed output conditions.
Make a short intake note before opening adjustments: source filename, pixel dimensions, embedded profile or its absence, intended destination, and which application showed the unexpected change. Save a copy of the received file. “The green cup looks dull” describes the symptom; “the exported PNG has a different profile from the working document” identifies a testable difference.
For this lesson, the received original is 1536 × 1024 and has no embedded profile. That is an observed file property, not proof that the generating system worked in a particular color space. Our deliberate sRGB starting assumption creates a known exercise. With a real client's untagged file, get that missing information before presenting a guessed interpretation as a correction.
Opening a file can itself be a processing step. An editor may preserve its embedded profile or convert to a working space according to its color-management policy. Before reproducing the exercise, inspect the downloaded files themselves and note what your application does on opening. If it converts P3 to sRGB immediately, the document you inspect afterward is no longer the untouched P3 download. Adobe documents these missing-profile and mismatch policies.
Keep an untouched copy and make any automatic conversion explicit in your notes. This distinguishes “the downloaded file has no profile” from “my application opened it into an sRGB working document.” Both statements can be true at different stages. A workflow becomes much easier to diagnose once each statement names the file or stage it actually describes.
RGB numbers need a description
An RGB pixel contains numbers for red, green, and blue. The numbers alone do not completely describe a color. A color space supplies their meaning; an embedded ICC profile lets compatible software carry that meaning through a color-managed workflow. The ICC describes profiles as mappings between device coordinates and a common color reference. ICC: color-management questions
The image profile and your monitor profile have different jobs. The first describes the image's encoding. The second describes a particular display so software can adapt the image for it. Replacing an image's profile with your monitor profile is not a general web-export solution.
There are three separate checks here. Mode tells you whether the file has RGB channels rather than, for example, CMYK. Profile describes how to interpret those channels. Calibration and viewing conditions concern the device on which you judge the result. Passing one check does not pass the other two. An RGB file may still have a missing or incorrect profile; a correctly tagged image may still be viewed on a poorly characterized display.
Similarly, a wider gamut is a larger range of representable colors, not a quality grade. Display P3 can describe colors outside sRGB, but changing a label does not create better lighting, recover clipped highlights, or repair an inaccurate product color. W3C: predefined RGB color spaces
Assignment changes meaning; conversion changes numbers
Imagine a note saying a distance is “12.” Changing its unit changes the meaning without changing the written number. Converting between units changes the number to preserve the intended distance. Color is more complex, but the distinction is useful.
Assign tells an application which profile should interpret the existing values. Use it to identify a genuinely untagged file when you know its intended encoding, or to correct a demonstrably wrong tag. Do not use it as a saturation control.
Convert calculates values for a destination profile with the aim of preserving appearance. It needs a meaningful source interpretation first. Colors outside the destination's gamut and finite numeric precision can prevent an exact match. Adobe makes the same assign-versus-convert distinction in its document-profile instructions.
Here is a concrete exercise. The generated original did not contain an embedded ICC profile. We explicitly chose sRGB as this lesson's starting interpretation, resized once to 768 × 512, and made these files:
| File operation | Stored RGB at pixel (300, 200) | Interpretation |
|---|---|---|
| Starting file | 154, 31, 2 | sRGB |
| Assign Display P3 | 154, 31, 2 | Display P3 |
| Convert to Display P3 | 141, 43, 19 | Display P3 |
The coordinate uses a zero-based top-left origin. The assignment file retains the starting file's compressed pixel-data chunks byte for byte; only its embedded profile changes. The conversion file was actually transformed with ICC color management. Its different numbers are expected, not evidence of damage.


Download the sRGB starting file, assigned-P3 file, and converted-P3 file. The safe file manifest records dimensions, hashes, the sample coordinate, and processing steps. Keep these filenames distinct when opening them in an editor that reports embedded profiles. A preview application that ignores profiles may show the first two similarly; that does not make their interpretations equivalent.
Read the evidence before trusting a preview
Open the three downloads as separate documents. Do not paste them into one document for this check: that can introduce another conversion. Read each file's profile, then compare the bowl, cloth and leaves at the same zoom. The assigned file should be identified as P3, even though its stored RGB values match the sRGB file. The converted file also has a P3 profile, but contains different values. A profile name alone cannot tell you which operation produced it.
For an inspectable numerical check, download the file-inspection script. It reads the profile and the stored RGB sample without converting that sample for display. In a separate local folder with Node.js available, place the script and three PNGs together, then run:
npm init -y
npm install sharp@0.35.5
node inspect-color.mjs still-life-srgb.png still-life-assigned-p3.png still-life-converted-p3.png
The script is optional; an editor that reports the document profile and raw sample values can answer the same questions. Its output includes dimensions, a profile-presence flag, a profile hash and a raw-pixel hash. A flag only says a profile exists. It does not certify that the profile is correct. Sharp: image metadata fields
In the supplied files, source and assignment have equal raw-pixel hashes but different profile hashes. Assignment and conversion have equal profile hashes but different raw-pixel hashes. Those two relationships are the evidence to look for. The measurement does not depend on how colorful your display makes the bowl appear.
The red-channel difference is 141 − 154 = −13; green changes by +12, blue by +17. These are changes in encoded channel values, not a measured loss of redness or a percentage of image quality. Our 8-bit channels have 256 possible integer values each. Color conversion does not preserve a channel merely because it was the largest, nor must every pixel change by the same amount.
Try the operation yourself on a duplicate of the sRGB starting file. In an editor with profile conversion, convert that copy to Display P3 and keep the destination profile. Then make a separate duplicate and assign Display P3 instead. Compare the operations, not just the appearances. Another color engine or conversion setting may produce slightly different rounded numbers; the supplied exact values belong to the recorded files and settings.
Prepare a web copy without guessing
For a general-purpose web handoff, sRGB is a practical default. Adobe's online-viewing guidance describes conversion to sRGB. A specifically managed wide-gamut workflow can instead have a different agreed destination.
Start from the original export and keep a working master. Check the document's embedded profile in a color-managed editor; do not infer it from a filename, a screenshot, or “looks right on my phone.” If it is untagged, first check the originating application's export documentation or ask the creator. Trying profiles until one looks attractive is a creative adjustment, not recovery of a known encoding.
When the source is known and the destination is sRGB, make a copy and convert it. In Photoshop's documented desktop workflow, this is Edit → Convert to Profile, with sRGB selected as the destination. Preview saturated objects and smooth gradients before committing. This menu reference comes from Adobe's documentation, not an observed LocalBanana control.
Export to a suitable format with profile information preserved, then reopen the exported file. Confirm the profile there: a correct working document does not establish that the final encoder retained the tag. Check the actual file after any additional image-processing service as well.
Choose the repair from what you actually know
A file with no profile and a confirmed sRGB origin can first be identified as sRGB. If the delivery is also sRGB, changing it to P3 and back adds no useful information. A file correctly tagged P3 that must become sRGB needs conversion. A file known to contain sRGB values but accidentally tagged P3 needs its interpretation corrected before any delivery conversion.
That last case explains why converting a wrongly tagged file does not undo the mistake. The converter uses the wrong interpretation as its source. It can make a valid sRGB file representing the wrong colors. Repair the mistaken source description using provenance, not by repeatedly converting until the image looks familiar.
If the source remains unknown, preserve it and ask for an approved reference or export specification. You may agree on a new interpretation as an editorial decision, but document it as such. This boundary matters for catalog products: an appealing green is not necessarily the approved glaze color.
Diagnose the point where the appearance changed
Use one file at a time and compare it in a stable viewing environment. The purpose is to locate a change, not to declare one device the universal reference.
| Observation | Next useful check |
|---|---|
| The exported file differs when reopened in the same editor | Destination profile, conversion choice, and embedded profile in the export |
| The local export is consistent, but the downloaded site image differs | Whether the site produced another file, changed its profile, or re-encoded it |
| Two applications disagree on the same file | Their color-management behavior and display settings |
| The same file differs between screens | Display profiling, brightness, viewing conditions, and available gamut |
Calibration adjusts a display toward chosen conditions; profiling describes its behavior. Neither is performed by embedding a profile in an image. For color-critical work, use an appropriate measured display workflow rather than compensating by eye in each export. Adobe: calibrate and profile a monitor
A screenshot also passes through its own capture and display pipeline, so it cannot reveal the original file's profile reliably. Keep the original attachment when asking someone to investigate a color mismatch.
Finish the lesson with a checkable handoff
For the website brief, a useful handoff contains the chosen sRGB image and a short note with dimensions, profile, source identity, and whether a conversion was performed. Keep the master in your own working set. The recipient should not have to guess whether a “P3” filename describes an embedded profile or merely someone's intention.
Reopen the final file in the same managed editor and compare against the approved starting appearance. Then inspect the actual upload in its destination. If a service returns a processed image, download that delivered version and inspect it separately. Preserve both files while investigating; a different file hash establishes a changed file, but does not by itself tell you whether the change was pixels, profile, or another metadata field.
Use these short exercises to check that the distinction has become practical:
- Two files have the same RGB sample but different profiles. Are their colors necessarily the same? No. The profile changes the interpretation. The supplied source and assignment files are the concrete example.
- The converted file's RGB numbers differ. Should you copy the original numbers back to “restore accuracy”? No. That would undo part of the conversion without restoring the original interpretation. Judge a valid conversion using its source, destination and appearance, not numerical sameness.
- An untagged file looks right in one app. Is that enough to identify its source space? No. You have observed that app's rendering, not recovered the absent description. Check provenance or agree on an explicit assumption.
A completed exercise leaves you able to name the starting interpretation, the performed operation, and the final embedded profile. It does not require a claim that every screen matches. If one of those three facts is unknown, keep it visible in the handoff rather than disguising uncertainty as another saturation adjustment.
For a LocalBanana image, begin with the downloaded file and the destination's requirements. This article does not establish a universal profile for every generated download or claim that an export-profile switch exists in the product. If the next task is reducing upload size, the compression guide keeps color handling separate from decisions about pixels and encoding. For print, obtain the printer's requested color workflow alongside the trim and bleed specification.



