I have a Display P3 color (1, 0, 0), on a scale of 0.0 to 1.0. I want to find out what the closest color to this is in the sRGB gamut. I chose (1, 0, 0) on the right side ...

enter image description here

... but the left side still shows (1, 0, 0).

This makes no sense since (1, 0, 0) in sRGB is not the same color as (1, 0, 0) in P3 — the former is less saturated. As you can see in the screenshot above if you're reading this on a P3 monitor.

So, how do I convert this?

Conversely, given an sRGB color (1, 0, 0), how do I find out what the most saturated version of this color is in P3?

  • $\begingroup$ You go buy a colorimeter from the store (or lend one... from the library), make profile and do a profile to profile conversion. Note this is NOT a linear transform. Also your srgb mode needs to be calibrated since color is only accurate if you have calibrated the monitor in place taking into account surrounding color conditions so factory cslibration is allways off. $\endgroup$
    – joojaa
    Jun 11, 2017 at 6:49
  • $\begingroup$ @joojaa That's not needed for what the question asks, which is merely converting values from one color space to another using a formula. Whether the color appears correctly to the human eye on a particular monitor is not the question. $\endgroup$ Jun 11, 2017 at 8:15
  • $\begingroup$ No, it wont work. $\endgroup$
    – joojaa
    Jun 11, 2017 at 9:01
  • $\begingroup$ Why not? It may not be a linear transform, but whatever the formula, we should be able to apply it to an input value to get an output. $\endgroup$ Jun 11, 2017 at 9:14
  • $\begingroup$ Because the profile is the formula and only way to obtain one is to measure that individual panel! But its not a big deal colorimeters meantbfor profile buidlding are cheap. $\endgroup$
    – joojaa
    Jun 11, 2017 at 9:53

1 Answer 1


Assuming that "Display P3" refers to the DCI-P3 colour space, this covers a wider gamut of colours than sRGB, so that an exact match is not possible for P3 colours that fall outside the gamut of sRGB. The example colour in the question is the reddest red that DCI-P3 can produce. This is considerably redder than the reddest red that sRGB can produce, so the nearest available red is shown instead.

You are right that (1, 0, 0) in sRGB is not the same as (1, 0, 0) in P3, but it is the closest it is possible to get. If you enter (1, 0, 0) in sRGB, you should see that converting it to P3 gives a red that is not the extreme (1, 0, 0). Any colour in sRGB can be converted to P3, which covers all of sRGB and more. However, only some of the colours in P3 can be converted to sRGB, since sRGB doesn't cover all of those colours. For colours that sRGB doesn't cover, the conversion utility used appears to be giving the nearest approximation available within sRGB.

It is analogous to converting RGB to greyscale. Any shade of grey in RGB can be converted to greyscale and still look the same, but outside of the set of greys, any other colour will be changed when you convert to greyscale. So red will be converted to a grey that best approximates it.

In answer to your final sentence, if you want to take an sRGB colour and find the most saturated form of that colour that P3 can represent, then it is going to be less straightforward when you are dealing with a colour other than one of the primaries red, green, and blue. You need to consider whether you want the nearest hue amongst the maximum saturation colours in P3, or the most saturated of the exact hue match colours in P3. These are subtly different, because for a given hue its maximum saturation available within P3 is less than the maximum saturation available for the primaries, since the colour space is a triangle. You can compromise by deviating only slightly from the desired hue to achieve slightly more saturation, but the degree of compromise will depend on your purpose.

Even for the primaries, you need to ask whether you want to convert the greenest green sRGB can represent to the greenest green P3 can represent, or whether you want to take into account that those two colours are not quite the same hue. since sRGB and P3 don't use quite the same primaries (only the blue primary is identical). If you want the hue to remain constant, it might help to convert to an intermediary colour space that includes hue as a parameter.


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.