Thread: [Lcms-user] Consider exporting _cmsAdaptationMatrix()
An ICC-based CMM for color management
Brought to you by:
mm2
From: Richard H. <hug...@gm...> - 2014-04-04 15:13:11
|
I'm trying to create a v4 D65 profile using cmsCreateProfilePlaceholder() and settings values myself. If I understand correctly, all v4 profiles have to have a D50 whitepoint and a 'chad' adaption tag to convert to and from the real whitepoint. The only way to write the chad seems to be from cmsCreateRGBProfile() so creating a v4 D65 profile looks basically impossible using cmsCreateProfilePlaceholder(). Could we perhaps export _cmsAdaptationMatrix(), or perhaps better, if the profile version is v4 (from cmsSetProfileVersion) and we set a whitepoint using cmsSigMediaWhitePointTag then this automatically converts to a D50 whitepoint and updates the chad to reflect reality. Comments welcome. Richard. |
From: <Mar...@li...> - 2014-04-04 20:29:25
|
Hi Richard, > I'm trying to create a v4 D65 profile using > cmsCreateProfilePlaceholder() and settings values myself. Fine. > If I understand correctly, all v4 profiles have to have a D50 whitepoint > and a 'chad' adaption tag to convert to and from the real whitepoint. Well, this only applies on *display* profiles. On all other cases you need to store the media chromaticity adapted to D50. The CHAD is used to store the illuminant. So, if you create a profile for a printer using bond paper, and you use a F11 as light source, you need a CHAD from F11 to D50 and then the white of bond paper adapted as seen under D50 > The only way to write the chad seems to be from cmsCreateRGBProfile() > so creating a v4 D65 profile looks basically impossible using > cmsCreateProfilePlaceholder(). Why? You can just do something like: cmsMAT3 Matrix = {...}; cmsWriteTag(hProfile, cmsSigChromaticAdaptationTag, (void*) &Matrix); This works fine on profiles allocated by cmsCreateProfilePlaceholder But of course, the calculation of the matrix is then up to you... Otherwise I still don't understand where the issue is :-? Regards Marti |
From: Richard H. <hug...@gm...> - 2014-04-04 23:30:53
|
On 4 April 2014 22:28, <Mar...@li...> wrote: > Why? You can just do something like: > cmsMAT3 Matrix = {...}; > cmsWriteTag(hProfile, cmsSigChromaticAdaptationTag, (void*) &Matrix); Ahh, I didn't know I could do this. > This works fine on profiles allocated by cmsCreateProfilePlaceholder > But of course, the calculation of the matrix is then up to you... Right; this is my main issue I suppose. Do I have to add a linearized Bradford to my code also and adapt the primaries myself? Richard. |