Hi, We've recently discovered that Darktable's (a photography application) internal sRGB profile seems to encode a D50 whitepoint even though we are passing a D65 whitepoint. The current theory is that this changed when we migrated from lcms1 to lcms2.
This is our code: https://github.com/darktable-org/darktable/blob/master/src/common/colorspaces.c#L189 So the big question is why lcms2 seems to be ignoring the whitepoint we pass along? Are we doing something wrong? Could this bit of code in cmsvirt.c explain it: if (WhitePoint) { if (!cmsWriteTag(hICC, cmsSigMediaWhitePointTag, cmsD50_XYZ())) goto Error; cmsxyY2XYZ(&WhitePointXYZ, WhitePoint); _cmsAdaptationMatrix(&CHAD, NULL, &WhitePointXYZ, cmsD50_XYZ()); // This is a V4 tag, but many CMM does read and understand it no matter which version if (!cmsWriteTag(hICC, cmsSigChromaticAdaptationTag, (void*) &CHAD)) goto Error; } Is D65 encoded into a different tag, and the old tag is defaulted to D50? Also, we noticed lcms2 seems to default to ICCv4: cmsSetProfileVersion(hICC, 4.3); Is there any way we could stick with ICCv2 (for greater compatibility)? Regards, Pascal de Bruijn
dt_srgb.icc
Description: Binary data
------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user