|
|
PROGRAM GamutChk;
|
|
|
|
|
|
USES lcmsdll, Windows;
|
|
|
|
|
|
|
|
|
VAR
|
|
|
hLabProfile, hDisplayProfile, hProof: cmsHPROFILE;
|
|
|
ProofTransform : cmsHTRANSFORM;
|
|
|
Lab: cmsCIELab;
|
|
|
wRGB: ARRAY [0..2] OF Byte;
|
|
|
|
|
|
BEGIN
|
|
|
WriteLn('Gamut check test');
|
|
|
|
|
|
hLabProfile := cmsCreateLabProfile(NIL);
|
|
|
hDisplayProfile := cmsCreate_sRGBProfile();
|
|
|
hProof := cmsOpenProfileFromFile('test.icm', 'r');
|
|
|
|
|
|
|
|
|
ProofTransform:=cmsCreateProofingTransform(hLabProfile,
|
|
|
TYPE_Lab_DBL,
|
|
|
hDisplayProfile,
|
|
|
TYPE_RGB_8,
|
|
|
hProof,
|
|
|
INTENT_RELATIVE_COLORIMETRIC,
|
|
|
INTENT_ABSOLUTE_COLORIMETRIC,
|
|
|
cmsFLAGS_SOFTPROOFING OR cmsFLAGS_GAMUTCHECK OR cmsFLAGS_NOTPRECALC);
|
|
|
|
|
|
|
|
|
cmsSetAlarmCodes(255,255,255);
|
|
|
|
|
|
|
|
|
Write('L=?'); ReadLn(Lab.L);
|
|
|
Write('a=?'); ReadLn(Lab.a);
|
|
|
Write('b=?'); ReadLn(Lab.b);
|
|
|
|
|
|
|
|
|
cmsDoTransform(ProofTransform, @Lab, @wRGB, 1);
|
|
|
|
|
|
WriteLn('R=', wRGB[0], ' G=', wRGB[1], ' B=', wRGB[2]);
|
|
|
|
|
|
cmsCloseProfile(hLabProfile);
|
|
|
cmsCloseProfile(hDisplayProfile);
|
|
|
cmsCloseProfile(hProof);
|
|
|
cmsDeleteTransform(ProofTransform);
|
|
|
|
|
|
END.
|
|
|
|
|
|
|
|
|
|
|
|
|