Conversion Given an ICM Profile (Delphi 4.0)
1. |
Define the following global variables: |
ClrHandle : THandle;
params : CONVERSION_PARAMS;
RGBColor : array[0..2] of UCHAR;
ColorSpace : array[0..3] of UCHAR;
2. |
Set the conversion options by filling a CONVERSION_PARAMS structure: |
ZeroMemory(Pointer(@params), SizeOf(CONVERSION_PARAMS));
params.uStructSize := SizeOf(CONVERSION_PARAMS);
params.nMethod := USE_CUSTOM_ICC;
params.nActiveMethod := USE_CUSTOM_ICC;
New(params.pWpoint);
params.pWpoint.nWhitePoint := CIELAB_D50;
StrCopy (params.sInputProfile, ‘C:\MyCMYKProfile.ICM’);
StrCopy (params.sOutputProfile, ‘C:\MyRGBProfile.ICM’);
params.pMemInputProfile := nil;
params.pMemOutputProfile := nil;
3. |
Initialize the color conversion handle with L_ClrInit(): |
L_ClrInit(@ClrHandle, CCS_CMYK, CCS_RGB, @params);
4. |
Now, do the conversion: |
ColorSpace[0] := 100;
ColorSpace[1] := 100;
ColorSpace[2] := 100;
ColorSpace[3] := 100;
L_ClrConvert(ClrHandle, Pointer(ColorSpace), Pointer(RGBColor), 1, 1, 0, 0);
5. |
At the end, free the color conversion handle: |
L_ClrFree(ClrHandle);