Absolutely no idea if this is the best place to ask, if not, please point me in a better direction.

Basically, I have been using this software to determine if the pixel colours of an image (the pixel colours being in the sRGB gamut) are within the pointers gamut: https://pyco.gumroad.com/l/pgtool

The pointers gamut is a measure of what colours can be produced by diffuse reflection. Here is an image comparing the pointers gamut and sRGB gamut. You can read more about the pointers gamut here.

My confusion arose here: Certain colours that fall within the pointers gamut on a CIE diagram, e.g RGB 255, 255, 255, when checked by the pointers gamut image checker I linked, are highlighted as outside the pointers gamut. I asked the devs about this and they said it is because the full pointers gamut and sRGB are 3D spaces and the CIE diagrams I was using to check the results of the image checker against are 2D representations that only represent a slice of the full data.

At first this made sense, but I'm a little confused again as according to this: "Every color can be divided into a chromaticity and a brightness component. The brightness component speaks for itself. The chromaticity component describes the proportion of the different wavelengths that make up the color. Chromaticity is also what defines a color space or color gamut."

The main point: It is my understanding that the devs were suggesting the reason colours that, on a CIE diagram are inside the pointers gamut, but when checked by the software, are highlighted as outside the pointers gamut is that the full 3D space of the pointers gamut and sRGB space contains the data for the brightness/luminosity of the colours, so for example, when you plot the full data from the research done by Pointer and compare it to the sRGB space, the sRGB colours may have different potential luminosity levels compared to the pointers gamut in a 3D representation. However I am confused as the quote I dropped earlier suggests that a colour gamut, which the pointers gamut is, is based just on the chromaticity. So if the pointers gamut is just a measure of chromaticity and not luminosity, why is the software highlighting colours that have a luminosity that is supposedly outside the pointers gamut? Why is the software accounting for the luminosity at all?

E.g could the pointers gamut be determined from data that also contains luminosity data? Or is it something to do with how a CIE diagram accounts for chromaticity compared to how it would be accounted for in a full 3D space?

I fear I massively over-explained my issue but oh well. Also, I wouldn't be surprised if I'm making a few incorrect assumptions. If I am, feel free to point them out.

2 Answers 2


Essentially the cromaticity chart is a 2D slice of a 3D image. The critical thing that your lengthy question is missing is that you assume the ability to make colors is same in each slice.

This is not true. So for example the sRGB space is smaller when the lumniosity is smaller for instance. Wheras typically again as a example cmyk printing has a bit wider gamut in darker colors.

So the asumption that any color device has the same shape irrespectively of lumniosity is false. And thus lumniosity matters. So before you draw any conclusions check several lumniosity slices.

Thats the short answer the long answer is about 1000 pages of scientific text.


When the Tftcentral website says that chromaticity is what defines a colour gamut, they are doing so in the context of video screens which add light emitting primary colours, which are generated independently of each other. In that context it is true, but surface colours which reflect light work differently, so chromaticity can be misleading as a diagram to display Pointer’s gamut of surface colours. Unfortunately there is not an easy way to display a complex three dimensional shape like Pointer’s gamut. RGB 255, 255, 255 may technically be outside of Pointer’s gamut if it is assumed to represent a surface which reflects 100% of white light, as I think even the purest white object only reflects around 98% of white light, but in general I would assume RGB 255, 255, 255 would represent the brightest white in the image, rather than theoretical pure white, so that technically correct definition might not be what is required in practice.

Clarification: Chromaticity is technically accurate, but it can be misleading without the luminosity, as I will try and explain. Chromaticity was initially based on the study of coloured lights. Video screens work by combining different coloured lights. If you have a video screen which can display a light which is 20% of the luminosity of the sRGB blue component of white light without any red or green, then it can also display 80% or 100% of the luminosity without any red or green. This means the three dimensional gamut of a video screen has vertical sides with regards to luminosity until the limit of white is reached, so the triangle of chromaticity is giving a good idea of the shape of the gamut. (see https://www.sciencedirect.com/topics/engineering/gamut-color for a 3D display of sRGB in chromaticity and luminosity) This is not the case with reflected colours. You might have a pigment which reflects 20% of the luminosity of the blue component of white light without any red or green, but that does not mean that you will have a pigment which reflects 80% or 100% of the blue component without any red or green. It is always possible to mix black pigment and get a darker colour at the same chromaticity, but if you add white pigment, you will be adding red and green reflectivity and changing the chromaticity. This means that the surface colour gamut begins wider at lower luminosity, but unlike the video screen gamut the range of chromaticity reduces earlier as luminosity increases. You might have an sRGB colour which has a chromaticity which is the same as the chromaticity which exists as a surface colour, but where the luminosity of the sRGB colour is too high to exist as a surface colour, and you will not be able to tell that from the two dimensional chromaticity chart, so it can be misleading.

The human visual system, and cameras which replicate the human visual system, treat the highest luminosity in view as pure white. You might need to assume that an sRGB 255, 255, 255 pixel could be of a surface which is only reflecting >90% of the white light. There is no way of knowing what percentage is actually being reflected. The moon appears white in the night sky despite being a dull gray in reality. This would in turn mean that all sRGB pixels in the image would need to be adjusted by 5% to 10% to get the actual surface colour of the object in the image in the tool you are checking. This should put the sRGB 255, 255, 255 pixels within pointer’s gamut in the tool as well. (N.B. if you are not already doing so, you need to take into account that sRGB values are gamma encoded, and you should convert to linear sRGB for this adjustment.)

Edit to explain the limits of a camera measuring RGB values, and whitepoint:

When measuring colours in a laboratory, you will have a known light source, and can calibrate with a known chemical pigment such as Barium Sulfate (BaSO4), so you know what proportion of the light a surface is reflecting. By this measure no physical object will reflect 100% of light and be RGB (255, 255, 255). Let’s say you measure a surface which has reflectance equivalent to RGB (240, 238, 230), and you then display that RGB on a video screen. Now imagine you scale the RGB values by a fixed proportion so that the largest value is 255, so you get RGB (255, 253, 244), and display that on a second video screen, but turn the brightness down so that the images match. The physical light being displayed by these two screens is identical. If you take a picture with a camera responding to that physical light, there is no way to recreate the RGB values of (240, 238, 230) from the first screen. The chromaticity of both values is the same, but the luminosity relative to the original illuminating light has been lost. The camera must assume the highest RGB value is 255 and scale the other RGB values by the same proportion, otherwise the camera is just wasting storage space. This is what makes chromaticity useful, as it is the value that stays constant when you can’t determine the relative luminosity. When analysing the photograph, it is then more sensible to assume the highest RGB value should be a typical highest reflectance value of 240, though it will always be just an estimate.

White Point is usually handled separately from luminosity. Different illuminating lights have different proportions of R, G and B, different cameras have different proportional sensitivity to R, G and B, and different video screens have slightly different proportional strengths of R, G and B emitters. If you need to ensure the colour is physically the same, you need to know the white point of the illuminating light, camera and of the video screen. I think typically the G value is kept constant and the R and B values are adjusted up or down by some proportion.

The —tolerance parameter should allow for an error in both luminosity and white balance.

An illustration of Pointer’s gamut at different luminosities:

This might be easier to understand with illustrations, here is a chart of pointers gamut at various luminosities from https://www.dpreview.com/forums/thread/4230570 (though luminosity is not the best word in this context).

Pointer's gamut at range of luminosities

The smallest black outline going from white to yellow is at the highest luminosity, with the outline widening with decreasing luminosity, and then shrinking slightly towards blue-violet at lowest luminosities. In physical mixing of pigments, increasing luminosity by adding white will change the chromaticity towards the whitepoint at the centre of the chromaticity chart. The chromaticity of the whitepoint is also the chromaticity of all neutral greys, so is within the Pointer’s gamut outline at all luminosities. In theory the chromaticity gamut of surface colours should only increase with decreasing luminosity, but the outlines here depend on the range of samples which Pointer measured, and do not necessarily contain all possible dark greens and reds.

The sRGB gamut will also eventually reduce with increasing luminosity as each light emitter reaches the luminosity needed for white, but not as quickly as Pointer’s gamut, and not in such an irregular way.

There is also an article here https://chrisbrejon.com/articles/albedo-and-pointers-gamut/ approaching this subject from the point of view of cinematography. (Albedo means something similar to luminosity in this context.)

  • Usually you do some sort of whitepoint compensation because even monitors are differently bright.
    – joojaa
    Aug 30, 2022 at 13:51
  • I don't fully understand how it is accurate in regards to chromaticity defining the colour gamut of video screens but not as accurate with reflected colours. Can you explain why it is accurate in regards to video screens but misleading with reflected light? Also, to be clear, are you saying that in the event RGB 255 255 255 is not interpreted as theoretical pure white, it would be in the pointers gamut? I don't think you are but wanna be sure. Sep 1, 2022 at 4:19
  • There was too much text for a coMment, so I added it to the answer under: Clarification. I'm new to posting on Stack Exchange, so I'm still learning how best to do this. Hope the information is helpful. Sep 5, 2022 at 16:38
  • 1
    @ACrypticFish well that's only partially true, for example typical color conversion standard defines 4 ways to do the conversion and only one of them does not consider white point compensation. So saying white is not within gamut is ok, within some range of acceptable parameters. Its usually not very useful to say that a monitor is brighter than paper, because it depends also where that paper is. If its blasted by worlds most powerful light source it probably is brighter than my monitor.
    – joojaa
    Sep 6, 2022 at 16:36
  • 1
    I've added an illustration and a link to a related article. The key point is that the range of chromaticity can decrease with increasing luminosity, and eventually will. In theory the combined range of chromaticity and luminosity is the gamut, and combining any colours within that gamut will always result in a new colour within the same gamut. Sep 14, 2022 at 11:02

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.