

PROGRAM CreateProfile;

USES lcmsdll, Windows;





VAR

        Primaries:  cmsCIExyYTRIPLE;

        WhitePoint: cmsCIExyY;

        GammaTables: ARRAY [1..3] OF LPGAMMATABLE;

        TheProfile: cmsHPROFILE;





BEGIN



        WriteLn('Creation of profile TEST.ICM...');



        {Fill in primaries (Rec709 as example) }



        Primaries.Red.x := 0.6400;

        Primaries.Red.y := 0.3300;

        Primaries.Red.YY := 1.0;



        Primaries.Green.x := 0.3000;

        Primaries.Green.y := 0.6000;

        Primaries.Green.YY := 1.0;



        Primaries.Blue.x := 0.1500;

        Primaries.Blue.y := 0.0600;

        Primaries.Blue.YY := 1.0;





        {Calculates white point from temperature}

        {That is, 6504§K = D65                  }



        cmsWhitePointFromTemp(6504, @WhitePoint);







        { Compute gamma tables of 2.2 }



        GammaTables[1] := cmsBuildGamma(256, 2.2);

        GammaTables[2] := cmsBuildGamma(256, 2.2);

        GammaTables[3] := cmsBuildGamma(256, 2.2);





        { Does create the profile }



        TheProfile := cmsCreateRGBProfile(@WhitePoint, @Primaries, GammaTables);







        _cmsAddTextTag(TheProfile, $63707274, 'copyright (c) you');

        _cmsAddTextTag(TheProfile, $646D6E64, 'Manufacturer');

        _cmsAddTextTag(TheProfile, $646D6464, 'Model');





        { Save the profile to a file }



        _cmsSaveProfile(TheProfile, 'TEST.ICM');



        WriteLn('Profile saved');



        { Free the gamma tables }



        cmsFreeGamma(GammaTables[1]);

        cmsFreeGamma(GammaTables[2]);

        cmsFreeGamma(GammaTables[3]);



        { And close the handle }



        cmsCloseProfile(TheProfile)

END.



