Hello,

For profiles without any gamut information (like display profiles) , I use to 
use a < back and forth > transform PCS->Device->PCS using the 
CreateMultiprofileTransform() function. When I transform the Lab boundary, I 
got something similar to the gamut boundary of the profile. As I'm migrating to 
V2, I got different results.

I get sometimes identity. It depends on the profile. For printer ones, it seems 
to work. For display ones, some of them return identity, other return much 
larger gamut than expected and perhaps some return the same results than 
before. I guess that the analysis of the transformation is different according 
the stages (LUT, matrix, CLUTs and so on..). Probably, it's not the way I 
should do to get what I expect !

Now, this results in an identity profile if I use this code (sRGB profile) :

      double In[3],Out[3];

      cmsSetLogErrorHandler(ErrorLog);
      cmsHPROFILE sRGB=cmsCreate_sRGBProfile();
      cmsHPROFILE XYZ=cmsCreateXYZProfile();
      cmsHPROFILE Profiles[4]={XYZ,sRGB,sRGB,XYZ};

      cmsHTRANSFORM 
Trans=cmsCreateMultiprofileTransform(Profiles,4,TYPE_XYZ_DBL,TYPE_XYZ_DBL,INTENT_ABSOLUTE_COLORIMETRIC,cmsFLAGS_HIGHRESPRECALC);

      In[0]=0.75;
      In[1]=0.50;
      In[2]=0.45;

      cmsDoTransform(Trans,In,Out,1);

      cmsDeleteTransform(Trans);
      cmsCloseProfile(sRGB);

The Out array always have the original values whatever the In array contains, 
not the ones expected because of some gamut mapping. I guess that's it's an 
optimization somewhere that detects an identity where there is not. Is it 
normal ? Or, is there a different way now to do this correctly (other function 
or flags)  ?

Thanks in advance,

J.
------------------------------------------------------------------------------

_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to