This screenshot is from darktable and GIMP-2.9, both from git, both updated today:
It’s a shot of the sky, so maybe not the best example image. But notice the sky in darktable (“1.”) is more blue, and the sky after the image is opened in GIMP-2.9 (“2.”) is more purple. Duplicating the image and then assigning GIMP’s built-in linear sRGB profile (“3.”) makes the sky “more blue” again.
I used GIMP’s “Image/Color Management/Save color profile to file” to save a copy of the embedded profile in the image transferred from darktable to GIMP, and then used “iccToXml” to compare the “from the EXR file profile” XYZ values to the XYZ values found in GIMP’s own built-in sRGB profile (which in turn match the XYZ values in the ArgyllCMS “sRGB.icm” profile).
Here’s the “from the EXR file chromaticities” profile XYZ values:
<XYZType>
<TagSignature>rXYZ</TagSignature>
<XYZNumber X="0.38163757" Y="0.19277954" Z="0.00808716"/>
</XYZType>
<XYZType>
<TagSignature>bXYZ</TagSignature>
<XYZNumber X="0.15818787" Y="0.07135010" Z="0.73481750"/>
</XYZType>
<XYZType>
<TagSignature>gXYZ</TagSignature>
<XYZNumber X="0.42436218" Y="0.73587036" Z="0.08198547"/>
</XYZType>
Here’s the GIMP-2.9 (and ArgyllCMS) profile XYZ values:
<XYZType>
<TagSignature>rXYZ</TagSignature>
<XYZNumber X="0.43603516" Y="0.22248840" Z="0.01391602"/>
</XYZType>
<XYZType>
<TagSignature>bXYZ</TagSignature>
<XYZNumber X="0.14305115" Y="0.06060791" Z="0.71392822"/>
</XYZType>
<XYZType>
<TagSignature>gXYZ</TagSignature>
<XYZNumber X="0.38511658" Y="0.71690369" Z="0.09706116"/>
</XYZType>
<parametricCurveType>
“Linear Rec.709” and “linear sRGB” ICC profiles should be identical, apart from non-functional metadata tags. So something clearly went wrong somewhere either in the chromaticities embedded in the EXR file, or when making the embedded chromaticities into an ICC profile.
So is this a bug in the chromaticities that darktable embeds in the EXR file? Or maybe a bug in how GIMP or perhaps the darktable GIMP plug-in makes an ICC profile from the assigned linear Rec709 profile? Or a user error on my part (always a possibility )?