What is the difference between applying/assigning an ICC color profile to an image for color correction

  1. During opening and processing the raw image in some studio software (e.g. Lightroom, CaptureOne), or
  2. after converting the image with no color correction into a tiff format, then opening it again to assign the ICC profile and save it again.

is it so that in the first case the correction is happening on the raw data level whereas in the second case the correction is happening on processed data? does it have any impact?

[update] basically, my workflow using seperate software looks something like

"Raw image >> 16-bit tiff color uncorrected >> applying ICC and save 16-bit tiff"

I would like to know how that will be any different from choosing the intended ICC profile from the very beginning when starting to convert the raw image from within a studio software, say, LightRoom

[update 2]

I have the following scenarios:

1- in which I have CaptureOne studio and I have prepared an ICC profile by a color target. So then I import the raw photos I am shooting into CaptureOne studio and choose from the drop-down menu the custom ICC profile I made earlier, hence it is -supposedly- correcting for the colors during the raw conversion when I save/export the corrected image in tiff format (so the raw data are being converted accordingly to suit the ICC profile color space/gamut, right?).

2- the second scenario or workflow I have as well is to use two different stand-alone software, namely Libraw/DCraw and LittleCMS, where the former is responsible for raw image conversion to a tiff format and the latter for applying an ICC profile. in this scenario, the conversion must happen first from raw to non-raw so that LittleCMS is able to recognize and apply the color profile on it (and here where I am talking about an intermediate color uncorrected tiff image produced by Libraw/DCraw)

Please note that Libraw/DCraw offers during the conversion an output color space to be one of these (raw, sRGB, Adobe RGB, Wide, PhotoPro, XYZ, ACES) and I try to choose "raw", whatever it means, always. (if somebody can clarify what raw does mean in this context when having a converted image "tiff" please do)

So if am understanding correctly what people are saying about how to use ICC profile optimally, then the second scenario is absurd and will not have the same color correction as in the first scenario, because when Libraw/DCraw has converted the raw image into "color uncorrected" image the raw data/numbers have already been assigned to a certain color space to operate in so they have some meaning, right?


Raw color space offered by Libraw/DCRaw "-o 0" (meaning dcraw doesn’t apply any input profiles or do any conversions to an output/working profile), the image you get will have a strong orange color cast. The color-cast can be color-balanced away to produce a normal-looking image. So it is a valid camera profile. But it’s a little weird. <Source>


Thanks all for the answers. So if I try to come up with sort of a conclusion based on what people are answering then:

it is clearly valid - and apparently what is happening in any image studio behind the curtains - to convert a raw image data into an intermediate lossless wide gamut tiff image (e.g. 16-bit in ProPhoto color space) and then to carry out some necessary operations/modifications on it if necessary and then converting to the intended ICC color profile to save the end result.

  • 2
    \$\begingroup\$ Do you definitely mean assigning, as opposed to converting? That's really going to produce odd/random results. \$\endgroup\$
    – Tetsujin
    Mar 26, 2021 at 17:00
  • \$\begingroup\$ To my understanding it is "profile assignment" just like when you open a raw image in Lighroom or any other studio and then from the drop-down menu you choose one color profile (color space) to work in and be embedded in it. Please correct me if I am mistaken \$\endgroup\$
    – wisdom
    Mar 26, 2021 at 18:45
  • 1
    \$\begingroup\$ There should always be a default, correct, profile already assigned by the camera. Randomly assigning any other profile will change the colour output. Converting to another profile will [generally] better preserve colour as intended [assuming the correct profiles are used.] Please describe to us, in detail, exactly what it is you are trying to achieve rather than how you think you may achieve it. Colour management is not a simple task & people very frequently make incorrect assumptions as to how it does or should work. \$\endgroup\$
    – Tetsujin
    Mar 26, 2021 at 19:07
  • 1
    \$\begingroup\$ There's no such thing as "THE uncorrected raw image". Processing steps must be applied to raw image data to make a viewable image on your monitor. The near infinite different ways the raw data may be processed are all equally valid ways of interpreting that data. This entire question is based upon the incorrect assumption that what one sees on their screen when they first open a raw image file is "THE raw image". It is not. It is but one interpretation of the raw image data, produced by whatever instruction set created it (camera settings for embedded preview, app settings for viewer, etc.) \$\endgroup\$
    – Michael C
    Mar 26, 2021 at 23:11
  • 1
    \$\begingroup\$ You still didn't tell us what you are trying to achieve only what you think you need to do to achieve it. This is known s an XY Problem \$\endgroup\$
    – Tetsujin
    Mar 27, 2021 at 8:14

3 Answers 3


I fear there is a misunderstanding of the processes involved: color correction vs color conversion vs "applying/assigning an ICC". (The latter are usually understood as two different things; to avoid ambiguity, it's better to say about assigning a profile).

As others have mentioned, you can't really avoid color conversion when processing raw images. Raw images by definition carry sensor-specific information, and only the conversion software knows about it. It has to convert it to something that everyone else can understand.

To clear things up, let's consider a simple numeric example. (I will make the numbers up). Imagine our image is a single grayscale pixel.

Your camera takes a picture and reads 86% from the sensor. 86% of what? Of this specific sensor capabilities. A typical raw file will record this number as is (86%) and will be tagged with the camera/sensor model. The processing software (raw converter) will then need to have a large database of all sensors to interpret this file correctly. It's a big effort to collect and maintain such a database. Some more advanced "raw" files such as DNG embed the physical interpretation of the data (say, 100% = 1000 lux for our grayscale example), so that the file could be interpreted independently.

Now, no matter which raw converter you use, it will do some conversion in order to produce a valid output. All of them have a selection of the output color profile.

If you select ProPhoto, it might come up with, say, 82% ProPhoto. The attached "ProPhoto" part is as important as the number itself. It's like a physical unit.

If you select sRGB, it may produce 105% sRGB. Oops! We can't store more than 100%, so we'll have to clip and lose data. (I just threw that problem in for fun.) The output file will be: 100% sRGB.

If you select AdobeRGB, it could be 98% AdobeRGB.1 Fine.

If you select, as you do, "raw" - what will it be? I don't know. It doesn't make much sense. Perhaps, it will retain the original number 86%, but this is meaningless without knowing the reference, which is the sensor capabilities in this case. Perhaps the software could compile and attach a special color profile that describes the sensor, but I doubt it is the case, and it would be a large and non-standard profile.

From here, your second step is a bit confusing.

To "assign" a color profile (ICC) is to set the profile without converting the image. It's a technically trivial task like adding an email attachment. But it will likely produce an invalid result unless you know exactly what you are doing.

Say, if you take your converted file "82% ProPhoto" and assign it sRGB, you will get "82% sRGB". Physically, this is a very different thing, like 82 m vs 82 ft.

If you take your dubious converted "raw" "86%", you'll get "86% sRGB" - again a wrong result. (Remember "in truth" it's more than 100% sRGB!).

The only correct thing is to convert the file. Conversion happens from one color profile to another: it necessarily involves two profiles, input and output.

You can convert 82% ProPhoto --> 98% AdobeRGB, for example. Note this involves recalculation of each pixel of the file, and it is not as trivial as this one number. Naturally, when we work with limited resolution (read color depth), we want to minimise the number of conversions, and do them in the "smart" order, so your question is valid on a fundamental level.

If we take our "raw" "86%" file, how can we convert it to something? It may have the most accurate original "number", but we probably don't have the input profile! The file may still be tagged that it was taken by such-and-such camera (carried over from the original raw), but it's a non-trivial task to convert from sensor-specific colors to anything; for one, normal editing software don't have the database of all cameras. This is a job for the specialised raw converters.

So. I suggest there are two typical workflows, depending on the amount of post-raw editing.

  • For minimal editing or converting straight to final, select your desired final ICC right as the raw converter output. This will typically be one of the most common ones such as sRGB or AdobeRGB.

  • For more extensive editing, and particularly for images that contain saturated colors that may not fit in the "lowest common denominator" sRGB, use a reasonably wide ICC as the raw output.

    • One approach here is to use a compromise that is "ought to be enough for everyone" - AdobeRGB. It is wide enough to cover what can actually be displayed on modern monitors, and is convenient as a working profile: for example, it presents a reasonable histogram. And it is still OK for 8-bit depth.
    • Another approach is to use a super-wide profile such as ProPhoto. This will require at least 16-bit color depth.

    After converting to this intermediate profile from raw, do all the editing (necessarily with the properly color-managed software), and then convert to the final common profile. This is usually recommended as the last step before saving the final file. But if you don't do editing and just convert from raw, there is no point in such two-step process.

1 Of course, real sRGB and AdobeRGB have the same gray curve. It's just a made-up example to demonstrate the process. Consider it the green channel if you like.

  • \$\begingroup\$ thanks for your thorough answer. I have sort of drawn a simple conclusion and updated my original post above. just one small thing I want to get sure of as well. At the very end when converting/applying the intended ICC profile that is designed for a specific hardware (Camera) usually it is wide enough and wider than, say, sRGB. The question is, when showing the image on a monitor then here the CMS of the OS is the one who takes care of converting now from whatever the image's gamut color space (its ICC) to the monitor color space, right? \$\endgroup\$
    – wisdom
    Apr 6, 2021 at 13:22
  • \$\begingroup\$ @wisdom, correct. This is a different "half" of the problem: to display the result correctly. I didn't touch it except for the phrase "necessarily with the color-managed software": generally, it is understood that you have a CMS when you work with color conversions. Fundamentally, it is the same thing as the "normal" color conversion, just done on the fly to the display profile (which is normally obtained from physical measurement of the actual display), and from the profile the image is tagged with. Yes, typically two conversions happen before you see the image. \$\endgroup\$
    – Zeus
    Apr 7, 2021 at 0:44
  • \$\begingroup\$ Technically, it is possible to work without CMS (and even without seeing the image at all), like it is possible to work with a drawing (or map) with unknown scale - as long as you understand what you are doing and not try to "read" the color data from the screen. \$\endgroup\$
    – Zeus
    Apr 7, 2021 at 0:52

A raw file without a color/demosaicing profile applied cannot be displayed. At a minimum this will be the camera profile (LR's profiles, RawDigger's built in profiles, etc). And the color space (icc profile) will be whatever is being used by the program (ProPhoto for LR).

At this point both profiles are only applied and the raw data remains unchanged, but they are determining what you are seeing. And in order to change it into another non-raw format the file must be converted. You can convert to a tiff/jpeg/etc w/o including the color space tag; but that is not the same as not having converted the data into/using a specific color space (it just screws up color management).

Essentially; #1 must happen, and #2 cannot happen.

  • \$\begingroup\$ The first sentence of the second paragraph would be clearer if it were expanded to include something like, "... what you are seeing, but they are not affecting or changing the actual raw data in any way, they are only affecting the particular interpretation of that data you see on your screen." \$\endgroup\$
    – Michael C
    Mar 26, 2021 at 23:21
  • \$\begingroup\$ @Michael C, minor edit/addition made. \$\endgroup\$ Mar 27, 2021 at 1:20
  • \$\begingroup\$ #2 scenario actually can happen through the separate software I am using, one for raw conversion and one for ICC application. However, what I am not sure about and hence I am asking if that is anyhow logical or not, and if not why such separate software for ICC application are available then! Please check my update on the original post \$\endgroup\$
    – wisdom
    Mar 27, 2021 at 12:31
  • 1
    \$\begingroup\$ @wisdom, note that libraw/dcraw and all other raw processing programs have a list of supported cameras. That is because it has to have a color/demosaicing profile suitable for rendering a raw image from that camera. The program is applying a device specific color profile much like an icc profile for your monitor is. If you save the tiff with the raw color profile it is converted into that color space and no longer raw data. Just as you can convert an image into your monitors's color space. Both are really bad ideas unless you have a very specific reason for using a non-standard profile. \$\endgroup\$ Mar 27, 2021 at 13:36
  • \$\begingroup\$ so you are saying, no matter what color space the raw converter is using (even raw) the idea of converting to tiff and then correcting for its color with another custom ICC profile is not the best way to go/won't give optimal results as opposed to having the custom ICC from the very beginning? \$\endgroup\$
    – wisdom
    Mar 27, 2021 at 14:12

ICC profiles describe hardware. Specifically, how hardware interprets color data relative to a reference standard produced by the International Color Consortium (the ICC).

So an ICC color profile for a camera describes how to interpret the color data the camera produces.

An ICC profile for a monitor describes how it should interpret the color data it receives.

An ICC profile for a printer describes how it should interpret the color data it receives.

An ICC profile for a camera can reproduce built in jpeg profiles on RAW data. A monitor profile will correct for differences between its light output and the reference standard. An ICC profile for a printer will correct for differences in inks and papers.

A TIFF file can have embedded ICC information. This allows a printer to interpret the color data according to how it appeared on screen before applying its own ICC profile.

A color corrected workflow uses ICC profiles at each stage. However the camera step is often ignored and many images are never printed. So screen profiles calibrating monitors are often good enough.

  • \$\begingroup\$ I am aware of what is the job of an ICC profile. but my question is rather on the stage at which is the best to apply it and specifically for camera images displayed on monitors \$\endgroup\$
    – wisdom
    Mar 26, 2021 at 18:46
  • \$\begingroup\$ @wisdom all of them. \$\endgroup\$ Mar 26, 2021 at 19:12
  • \$\begingroup\$ @wisdom the camera profile corrects for the camera, the monitor profile corrects for the monitor, etc. \$\endgroup\$ Mar 26, 2021 at 19:15
  • \$\begingroup\$ @wisdom if you use two different devices, then you need two different ICC profiles. \$\endgroup\$ Mar 26, 2021 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.