📄 ielcms.pas
字号:
//
// Little cms
// Copyright (C) 1998-2004 Marti Maria
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the Software
// is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Version 1.13
// September 2004: Converted to Delphi by Fabrizio Di Vittorio (fdivitto@tiscali.it)
unit ielcms;
{$I ie.inc}
interface
{$IFDEF IEINCLUDECMS}
uses Windows, Classes, SysUtils, hyieutils, imageenproc, hyiedefs;
type
LCMSHANDLE = pointer;
cmsHPROFILE = LCMSHANDLE;
cmsHTRANSFORM = LCMSHANDLE;
PcmsHTRANSFORM = ^cmsHTRANSFORM;
const
// Pixel types
PT_ANY = 0;
PT_GRAY = 3;
PT_RGB = 4;
PT_CMY = 5;
PT_CMYK = 6;
PT_YCbCr = 7;
PT_YUV = 8; // Lu'v'
PT_XYZ = 9;
PT_Lab = 10;
PT_YUVK = 11; // Lu'v'K
PT_HSV = 12;
PT_HLS = 13;
PT_Yxy = 14;
PT_HiFi = 15;
PT_HiFi7 = 16;
PT_HiFi8 = 17;
TYPE_GRAY_8 = ((PT_GRAY shl 16) or (1 shl 3) or (1));
TYPE_GRAY_8_REV = ((PT_GRAY shl 16) or (1 shl 3) or (1) or (1 shl 13));
TYPE_GRAY_16 = ((PT_GRAY shl 16) or (1 shl 3) or (2));
TYPE_GRAY_16_REV = ((PT_GRAY shl 16) or (1 shl 3) or (2) or (1 shl 13));
TYPE_GRAY_16_SE = ((PT_GRAY shl 16) or (1 shl 3) or (2) or (1 shl 11));
TYPE_GRAYA_8 = ((PT_GRAY shl 16) or (1 shl 7) or (1 shl 3) or (1));
TYPE_GRAYA_16 = ((PT_GRAY shl 16) or (1 shl 7) or (1 shl 3) or (2));
TYPE_GRAYA_16_SE = ((PT_GRAY shl 16) or (1 shl 7) or (1 shl 3) or (2) or (1 shl 11));
TYPE_GRAYA_8_PLANAR = ((PT_GRAY shl 16) or (1 shl 7) or (1 shl 3) or (1) or (1 shl 12));
TYPE_GRAYA_16_PLANAR = ((PT_GRAY shl 16) or (1 shl 7) or (1 shl 3) or (2) or (1 shl 12));
TYPE_RGB_8 = ((PT_RGB shl 16) or (3 shl 3) or (1));
TYPE_RGB_8_PLANAR = ((PT_RGB shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_BGR_8 = ((PT_RGB shl 16) or (3 shl 3) or (1) or (1 shl 10));
TYPE_BGR_8_PLANAR = ((PT_RGB shl 16) or (3 shl 3) or (1) or (1 shl 10) or (1 shl 12));
TYPE_RGB_16 = ((PT_RGB shl 16) or (3 shl 3) or (2));
TYPE_RGB_16_PLANAR = ((PT_RGB shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_RGB_16_SE = ((PT_RGB shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_BGR_16 = ((PT_RGB shl 16) or (3 shl 3) or (2) or (1 shl 10));
TYPE_BGR_16_PLANAR = ((PT_RGB shl 16) or (3 shl 3) or (2) or (1 shl 10) or (1 shl 12));
TYPE_BGR_16_SE = ((PT_RGB shl 16) or (3 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_RGBA_8 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (1));
TYPE_RGBA_8_PLANAR = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (1) or (1 shl 12));
TYPE_RGBA_16 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2));
TYPE_RGBA_16_PLANAR = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 12));
TYPE_RGBA_16_SE = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 11));
TYPE_ARGB_8 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (1) or (1 shl 14));
TYPE_ARGB_16 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 14));
TYPE_ABGR_8 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (1) or (1 shl 10));
TYPE_ABGR_16 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 10));
TYPE_ABGR_16_PLANAR = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 10) or (1 shl 12));
TYPE_ABGR_16_SE = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_BGRA_8 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (1) or (1 shl 10) or (1 shl 14));
TYPE_BGRA_16 = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 10) or (1 shl 14));
TYPE_BGRA_16_SE = ((PT_RGB shl 16) or (1 shl 7) or (3 shl 3) or (2) or (1 shl 11) or (1 shl 14));
TYPE_CMY_8 = ((PT_CMY shl 16) or (3 shl 3) or (1));
TYPE_CMY_8_PLANAR = ((PT_CMY shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_CMY_16 = ((PT_CMY shl 16) or (3 shl 3) or (2));
TYPE_CMY_16_PLANAR = ((PT_CMY shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_CMY_16_SE = ((PT_CMY shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_CMYK_8 = ((PT_CMYK shl 16) or (4 shl 3) or (1));
TYPE_CMYK_8_REV = ((PT_CMYK shl 16) or (4 shl 3) or (1) or (1 shl 13));
TYPE_YUVK_8 = TYPE_CMYK_8_REV;
TYPE_CMYK_8_PLANAR = ((PT_CMYK shl 16) or (4 shl 3) or (1) or (1 shl 12));
TYPE_CMYK_16 = ((PT_CMYK shl 16) or (4 shl 3) or (2));
TYPE_CMYK_16_REV = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 13));
TYPE_YUVK_16 = TYPE_CMYK_16_REV;
TYPE_CMYK_16_PLANAR = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 12));
TYPE_CMYK_16_SE = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 11));
TYPE_KYMC_8 = ((PT_CMYK shl 16) or (4 shl 3) or (1) or (1 shl 10));
TYPE_KYMC_16 = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 10));
TYPE_KYMC_16_SE = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_KCMY_8 = ((PT_CMYK shl 16) or (4 shl 3) or (1) or (1 shl 14));
TYPE_KCMY_8_REV = ((PT_CMYK shl 16) or (4 shl 3) or (1) or (1 shl 13) or (1 shl 14));
TYPE_KCMY_16 = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 14));
TYPE_KCMY_16_REV = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 13) or (1 shl 14));
TYPE_KCMY_16_SE = ((PT_CMYK shl 16) or (4 shl 3) or (2) or (1 shl 11) or (1 shl 14));
TYPE_CMYK5_8 = ((5 shl 3) or (1));
TYPE_CMYK5_16 = ((5 shl 3) or (2));
TYPE_CMYK5_16_SE = ((5 shl 3) or (2) or (1 shl 11));
TYPE_KYMC5_8 = ((5 shl 3) or (1) or (1 shl 10));
TYPE_KYMC5_16 = ((5 shl 3) or (2) or (1 shl 10));
TYPE_KYMC5_16_SE = ((5 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYKcm_8 = ((6 shl 3) or (1));
TYPE_CMYKcm_8_PLANAR = ((6 shl 3) or (1) or (1 shl 12));
TYPE_CMYKcm_16 = ((6 shl 3) or (2));
TYPE_CMYKcm_16_PLANAR = ((6 shl 3) or (2) or (1 shl 12));
TYPE_CMYKcm_16_SE = ((6 shl 3) or (2) or (1 shl 11));
TYPE_CMYK7_8 = ((7 shl 3) or (1));
TYPE_CMYK7_16 = ((7 shl 3) or (2));
TYPE_CMYK7_16_SE = ((7 shl 3) or (2) or (1 shl 11));
TYPE_KYMC7_8 = ((7 shl 3) or (1) or (1 shl 10));
TYPE_KYMC7_16 = ((7 shl 3) or (2) or (1 shl 10));
TYPE_KYMC7_16_SE = ((7 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYK8_8 = ((8 shl 3) or (1));
TYPE_CMYK8_16 = ((8 shl 3) or (2));
TYPE_CMYK8_16_SE = ((8 shl 3) or (2) or (1 shl 11));
TYPE_KYMC8_8 = ((8 shl 3) or (1) or (1 shl 10));
TYPE_KYMC8_16 = ((8 shl 3) or (2) or (1 shl 10));
TYPE_KYMC8_16_SE = ((8 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYK9_8 = ((9 shl 3) or (1));
TYPE_CMYK9_16 = ((9 shl 3) or (2));
TYPE_CMYK9_16_SE = ((9 shl 3) or (2) or (1 shl 11));
TYPE_KYMC9_8 = ((9 shl 3) or (1) or (1 shl 10));
TYPE_KYMC9_16 = ((9 shl 3) or (2) or (1 shl 10));
TYPE_KYMC9_16_SE = ((9 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYK10_8 = ((10 shl 3) or (1));
TYPE_CMYK10_16 = ((10 shl 3) or (2));
TYPE_CMYK10_16_SE = ((10 shl 3) or (2) or (1 shl 11));
TYPE_KYMC10_8 = ((10 shl 3) or (1) or (1 shl 10));
TYPE_KYMC10_16 = ((10 shl 3) or (2) or (1 shl 10));
TYPE_KYMC10_16_SE = ((10 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYK11_8 = ((11 shl 3) or (1));
TYPE_CMYK11_16 = ((11 shl 3) or (2));
TYPE_CMYK11_16_SE = ((11 shl 3) or (2) or (1 shl 11));
TYPE_KYMC11_8 = ((11 shl 3) or (1) or (1 shl 10));
TYPE_KYMC11_16 = ((11 shl 3) or (2) or (1 shl 10));
TYPE_KYMC11_16_SE = ((11 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_CMYK12_8 = ((12 shl 3) or (1));
TYPE_CMYK12_16 = ((12 shl 3) or (2));
TYPE_CMYK12_16_SE = ((12 shl 3) or (2) or (1 shl 11));
TYPE_KYMC12_8 = ((12 shl 3) or (1) or (1 shl 10));
TYPE_KYMC12_16 = ((12 shl 3) or (2) or (1 shl 10));
TYPE_KYMC12_16_SE = ((12 shl 3) or (2) or (1 shl 10) or (1 shl 11));
TYPE_XYZ_16 = ((PT_XYZ shl 16) or (3 shl 3) or (2));
TYPE_Lab_8 = ((PT_Lab shl 16) or (3 shl 3) or (1));
TYPE_ALab_8 = ((PT_Lab shl 16) or (3 shl 3) or (1) or (1 shl 7) or (1 shl 10));
TYPE_Lab_16 = ((PT_Lab shl 16) or (3 shl 3) or (2));
TYPE_Yxy_16 = ((PT_Yxy shl 16) or (3 shl 3) or (2));
TYPE_YCbCr_8 = ((PT_YCbCr shl 16) or (3 shl 3) or (1));
TYPE_YCbCr_8_PLANAR = ((PT_YCbCr shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_YCbCr_16 = ((PT_YCbCr shl 16) or (3 shl 3) or (2));
TYPE_YCbCr_16_PLANAR = ((PT_YCbCr shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_YCbCr_16_SE = ((PT_YCbCr shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_YUV_8 = ((PT_YUV shl 16) or (3 shl 3) or (1));
TYPE_YUV_8_PLANAR = ((PT_YUV shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_YUV_16 = ((PT_YUV shl 16) or (3 shl 3) or (2));
TYPE_YUV_16_PLANAR = ((PT_YUV shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_YUV_16_SE = ((PT_YUV shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_HLS_8 = ((PT_HLS shl 16) or (3 shl 3) or (1));
TYPE_HLS_8_PLANAR = ((PT_HLS shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_HLS_16 = ((PT_HLS shl 16) or (3 shl 3) or (2));
TYPE_HLS_16_PLANAR = ((PT_HLS shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_HLS_16_SE = ((PT_HLS shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_HSV_8 = ((PT_HSV shl 16) or (3 shl 3) or (1));
TYPE_HSV_8_PLANAR = ((PT_HSV shl 16) or (3 shl 3) or (1) or (1 shl 12));
TYPE_HSV_16 = ((PT_HSV shl 16) or (3 shl 3) or (2));
TYPE_HSV_16_PLANAR = ((PT_HSV shl 16) or (3 shl 3) or (2) or (1 shl 12));
TYPE_HSV_16_SE = ((PT_HSV shl 16) or (3 shl 3) or (2) or (1 shl 11));
TYPE_NAMED_COLOR_INDEX = ((1 shl 3) or (2));
TYPE_XYZ_DBL = ((PT_XYZ shl 16) or (3 shl 3) or (0));
TYPE_Lab_DBL = ((PT_Lab shl 16) or (3 shl 3) or (0));
TYPE_GRAY_DBL = ((PT_GRAY shl 16) or (1 shl 3) or (0));
TYPE_RGB_DBL = ((PT_RGB shl 16) or (3 shl 3) or (0));
TYPE_CMYK_DBL = ((PT_CMYK shl 16) or (4 shl 3) or (0));
// Intents
INTENT_PERCEPTUAL = 0;
INTENT_RELATIVE_COLORIMETRIC = 1;
INTENT_SATURATION = 2;
INTENT_ABSOLUTE_COLORIMETRIC = 3;
cmsFLAGS_NOTPRECALC = $0100;
cmsFLAGS_NULLTRANSFORM = $0200; // Don't transform anyway
cmsFLAGS_HIGHRESPRECALC = $0400; // Use more memory to give better accurancy
cmsFLAGS_LOWRESPRECALC = $0800; // Use less memory to minimize resouces
function IEcmsOpenProfileFromFile(stream: TStream; save: boolean; save8bit: boolean): cmsHPROFILE;
function IEcmsCreateTransform(Input: cmsHPROFILE; InputFormat: DWORD; Output: cmsHPROFILE; OutputFormat: DWORD; Intent: integer; dwFlags: DWORD): cmsHTRANSFORM;
function IEcmsCloseProfile(hProfile: cmsHPROFILE): longbool;
procedure IEcmsDeleteTransform(hTransform: cmsHTRANSFORM);
procedure IEcmsDoTransform(Transform: cmsHTRANSFORM; InputBuffer: pointer; OutputBuffer: pointer; Size: dword);
function IEcmsCreate_sRGBProfile: cmsHPROFILE;
function IEcmsCreateLabProfile(WhitePoint_x, WhitePoint_y, WhitePoint_Y_: double): cmsHPROFILE;
function IEcmsCreateLabProfileD50: cmsHPROFILE;
function IEcmsCreateXYZProfile: cmsHPROFILE;
function IEcmsWhitePointFromTemp(TempK: integer; var WhitePoint_x, WhitePoint_y, WhitePoint_Y_: double): boolean;
implementation
{$WARNINGS OFF}
var
UsedSpace: integer;
const
MAX_TABLE_TAG = 50;
D50X = (0.9642);
D50Y = (1.0);
D50Z = (0.8249);
icMagicNumber = $61637370; // 'acsp' */
icVersionNumber = $02100000; // 2.1.0, BCD */
icSigChromaticAdaptationTag = $63686164; // 'chad'
VX = 0;
VY = 1;
VZ = 2;
MAXCHANNELS = 16;
LUT_V4_OUTPUT_EMULATE_V2 = $10000; // Is a V4 output LUT, emulating V2
LUT_V4_INPUT_EMULATE_V2 = $20000; // Is a V4 input LUT, emulating V2
LUT_V2_OUTPUT_EMULATE_V4 = $40000; // Is a V2 output LUT, emulating V4
LUT_V2_INPUT_EMULATE_V4 = $80000; // Is a V2 input LUT, emulating V4
// LUT handling
LUT_HASMATRIX = $0001;
LUT_HASTL1 = $0002;
LUT_HASTL2 = $0008;
LUT_HAS3DGRID = $0010;
LUT_HASMATRIX3 = $0020; // Matrix + offset for LutAToB
LUT_HASMATRIX4 = $0040; // Matrix + offset for LutBToA
LUT_HASTL3 = $0100; // '3' curves for LutAToB
LUT_HASTL4 = $0200; // '4' curves for LutBToA
AlarmR: WORD = $8FFF;
AlarmG: WORD = $8FFF;
AlarmB: WORD = $8FFF;
icSigLuvKData = $4C75764B; // 'LuvK'
icSigHexachromeData = $4D434836; // MCH6
icSigHeptachromeData = $4D434837; // MCH7
icSigOctachromeData = $4D434838; // MCH8
icSiglutAtoBType = $6D414220; // mAB
icSiglutBtoAType = $6D424120; // mBA
icSigParametricCurveType = $70617261; // parametric (ICC 4.0)
cmsFLAGS_NOTCACHE = $0040; // Inhibit 1-pixel cache
XYZRel = 0;
LabRel = 1;
cmsFLAGS_GAMUTCHECK = $1000; // Out of Gamut alarm
cmsFLAGS_SOFTPROOFING = $4000; // Do softproofing
icSigChromaticityTag = $6368726D; // As per Addendum 2 to Spec. ICC.1:1998-09
lcmsSignature = $6C636D73;
icSigChromaticityType = $6368726D;
SAMPLER_HASTL1 = LUT_HASTL1;
SAMPLER_HASTL2 = LUT_HASTL2;
SAMPLER_INSPECT = $01000000;
ERR_THERESHOLD = 5;
cmsFLAGS_MATRIXINPUT = $0001;
cmsFLAGS_MATRIXOUTPUT = $0002;
MATSHAPER_INPUT = $0004;
MATSHAPER_OUTPUT = $0008;
MATSHAPER_HASINPSHAPER = $0010;
MATSHAPER_ALLSMELTED = (MATSHAPER_INPUT or MATSHAPER_OUTPUT);
MATSHAPER_HASMATRIX = $0001;
MATSHAPER_HASSHAPER = $0002;
icReflective = $00000000; // Bit pos 0 */
icTransparency = $00000001; // Bit pos 0 */
icGlossy = $00000000; // Bit pos 1 */
icMatte = $00000002; // Bit pos 1 */
LCMS_BPFLAGS_D50_ADAPTED = $0001;
PERCEPTUAL_BLACK_X = (0.00336);
PERCEPTUAL_BLACK_Y = (0.0034731);
PERCEPTUAL_BLACK_Z = (0.00287);
LCMS_USED_AS_INPUT = 0;
LCMS_USED_AS_OUTPUT = 1;
LCMS_USED_AS_PROOF = 2;
cmsFLAGS_WHITEBLACKCOMPENSATION = $2000;
cmsFLAGS_BLACKPOINTCOMPENSATION = cmsFLAGS_WHITEBLACKCOMPENSATION;
cmsFLAGS_NOPRELINEARIZATION = $0010;
type
icUInt32Number = dword;
icInt32Number = integer;
icSignature = integer;
icUInt16Number = word;
icInt8Number = shortint;
icUInt8Number = byte;
icUInt64Number = array[0..1] of dword;
icS15Fixed16Number = icInt32Number;
Fixed32 = icInt32Number;
type
icProfileClassSignature = integer;
const
icSigInputClass = $73636E72; (* 'scnr' *)
icSigDisplayClass = $6D6E7472; (* 'mntr' *)
icSigOutputClass = $70727472; (* 'prtr' *)
icSigLinkClass = $6C696E6B; (* 'link' *)
icSigAbstractClass = $61627374; (* 'abst' *)
icSigColorSpaceClass = $73706163; (* 'spac' *)
icSigNamedColorClass = $6E6D636C; (* 'nmcl' *)
icMaxEnumClass = $FFFFFFFF;
type
icColorSpaceSignature = integer;
const
icSigXYZData = $58595A20; (* 'XYZ ' *)
icSigLabData = $4C616220; (* 'Lab ' *)
icSigLuvData = $4C757620; (* 'Luv ' *)
icSigYCbCrData = $59436272; (* 'YCbr' *)
icSigYxyData = $59787920; (* 'Yxy ' *)
icSigRgbData = $52474220; (* 'RGB ' *)
icSigGrayData = $47524159; (* 'GRAY' *)
icSigHsvData = $48535620; (* 'HSV ' *)
icSigHlsData = $484C5320; (* 'HLS ' *)
icSigCmykData = $434D594B; (* 'CMYK' *)
icSigCmyData = $434D5920; (* 'CMY ' *)
icSig2colorData = $32434C52; (* '2CLR' *)
icSig3colorData = $33434C52; (* '3CLR' *)
icSig4colorData = $34434C52; (* '4CLR' *)
icSig5colorData = $35434C52; (* '5CLR' *)
icSig6colorData = $36434C52; (* '6CLR' *)
icSig7colorData = $37434C52; (* '7CLR' *)
icSig8colorData = $38434C52; (* '8CLR' *)
icSig9colorData = $39434C52; (* '9CLR' *)
icSig10colorData = $41434C52; (* 'ACLR' *)
icSig11colorData = $42434C52; (* 'BCLR' *)
icSig12colorData = $43434C52; (* 'CCLR' *)
icSig13colorData = $44434C52; (* 'DCLR' *)
icSig14colorData = $45434C52; (* 'ECLR' *)
icSig15colorData = $46434C52; (* 'FCLR' *)
icMaxEnumData = $FFFFFFFF;
type
icTagSignature = integer;
const
icSigAToB0Tag = $41324230; (* 'A2B0' *)
icSigAToB1Tag = $41324231; (* 'A2B1' *)
icSigAToB2Tag = $41324232; (* 'A2B2' *)
icSigBlueColorantTag = $6258595A; (* 'bXYZ' *)
icSigBlueTRCTag = $62545243; (* 'bTRC' *)
icSigBToA0Tag = $42324130; (* 'B2A0' *)
icSigBToA1Tag = $42324131; (* 'B2A1' *)
icSigBToA2Tag = $42324132; (* 'B2A2' *)
icSigCalibrationDateTimeTag = $63616C74; (* 'calt' *)
icSigCharTargetTag = $74617267; (* 'targ' *)
icSigCopyrightTag = $63707274; (* 'cprt' *)
icSigCrdInfoTag = $63726469; (* 'crdi' *)
icSigDeviceMfgDescTag = $646D6E64; (* 'dmnd' *)
icSigDeviceModelDescTag = $646D6464; (* 'dmdd' *)
icSigGamutTag = $67616D74; (* 'gamt ' *)
icSigGrayTRCTag = $6B545243; (* 'kTRC' *)
icSigGreenColorantTag = $6758595A; (* 'gXYZ' *)
icSigGreenTRCTag = $67545243; (* 'gTRC' *)
icSigLuminanceTag = $6C756D69; (* 'lumi' *)
icSigMeasurementTag = $6D656173; (* 'meas' *)
icSigMediaBlackPointTag = $626B7074; (* 'bkpt' *)
icSigMediaWhitePointTag = $77747074; (* 'wtpt' *)
icSigNamedColorTag = $6E636F6C; (* 'ncol'
* OBSOLETE, use ncl2 *)
icSigNamedColor2Tag = $6E636C32; (* 'ncl2' *)
icSigPreview0Tag = $70726530; (* 'pre0' *)
icSigPreview1Tag = $70726531; (* 'pre1' *)
icSigPreview2Tag = $70726532; (* 'pre2' *)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -