Adriaan van Os wrote:
I need to get the primaries of an ICC profile. For example, for sRGB the required values are
Can someone please clarify ?
The answer is "it's complicated". In theory, just use the profile in Absolute Colorimetric intent, and feed 100% device values into it, one by one. But reality is a bit different. The focus of many of the changes to the ICC profile format seem to be the white point relative/PCS behavior of the profile, and a profile being a record of the CIE measurement values of the device behavior seems to have got rather lost in the changes. The ICCV2 profile spec. had a bit of a gap in it, in not providing a technically reasonable means of representing the chromatic adaptation from a displays actual white point to PCS (D50) white. The only documented means was the white point tag "Wrong Von Kries" transform, which, while acceptable for print profiles with white paper, shows its flaws when applied to the larger (typically) D65 to D50 white point shift necessary for displays. So some profile makers worked around the problem, and notably profiles like the (original HP/Microsoft) sRGB profile and the AdobeRGB profile applied a Bradford transform to the measured primary values, rather than "Wrong Von Kries". So to extract the measured primary values from such a profile, you had to know to apply a Bradford matrix in undoing the white point shift from D50 to the white point recorded in the white point tag when creating an Absolute Colorimetric transform. Other profile makers took a different approach, and simply hid the Bradford transform by applying it, but setting the white point tag to D50. For such a profile, there is no way of recovering the original primaries, and Absolute Colorimetric intent gave you Relative Colorimetric. A few profile makers used the "Wrong Von Kries" chromatic transform and put the true white point in the white point tag, and in this case the original primaries can be recovered by reversing the "Wrong Von Kries" chromatic adaptation in creating the Absolute Colorimetric Transform in the documented ICC V2 fashion. Latter on, the 'chad" tag was introduced, and this provided a means of reversing the chromatic adaptation even when the white point tag was set to D50. The disadvantage of this approach, is that while standard CMM's support Absolute Colorimetric intent which should restore the white point tag white point to the profile transform, they will not use the 'chad' tag, so display profiles built in the fashion are always relative intent with such CMMs. So a convenient means of recovering the primary values is not available with such profiles. ICCV4 embraced the latter approach as a standard. See <http://www.argyllcms.com/doc/ArgyllCMS_arts_tag.html> for another summary. Graeme Gill.