|
Classes |
struct | icInt8Array |
struct | icUInt8Array |
struct | icUInt16Array |
struct | icInt16Array |
struct | icUInt32Array |
struct | icInt32Array |
struct | icUInt64Array |
struct | icInt64Array |
struct | icU16Fixed16Array |
struct | icS15Fixed16Array |
struct | icDateTimeNumber |
struct | icXYZNumber |
struct | icXYZArray |
struct | icChromaticityNumber |
struct | icResponse16Number |
struct | icPositionNumber |
struct | icCurve |
struct | icParametricCurve |
struct | icParametricCurveFull |
struct | icData |
struct | icLut16 |
struct | icLut8 |
struct | icCLutStruct |
struct | icLutAtoB |
struct | icLutBtoA |
struct | icMeasurement |
struct | icNamedColor2Entry |
struct | icNamedColor2 |
struct | icDescStruct |
struct | icProfileSequenceDesc |
struct | icTextDescription |
struct | icScreeningData |
struct | icScreening |
struct | icText |
struct | icUcrBgCurve |
struct | icUcrBg |
struct | icViewingCondition |
struct | icCrdInfo |
struct | icColorantOrder |
struct | icColorantTableEntry |
struct | icColorantTable |
struct | icTagBase |
struct | icCurveType |
struct | icParametricCurveType |
struct | icParametricCurveFullType |
struct | icDataType |
struct | icDateTimeType |
struct | icLut16Type |
struct | icLut8Type |
struct | icLutAtoBType |
struct | icLutBtoAType |
struct | icMeasurementType |
struct | icNamedColor2Type |
struct | icProfileSequenceDescType |
struct | icTextDescriptionType |
struct | icS15Fixed16ArrayType |
struct | icScreeningType |
struct | icSignatureType |
struct | icTextType |
struct | icU16Fixed16ArrayType |
struct | icUcrBgType |
struct | icUInt16ArrayType |
struct | icUInt32ArrayType |
struct | icUInt64ArrayType |
struct | icUInt8ArrayType |
struct | icViewingConditionType |
struct | icXYZType |
struct | icCrdInfoType |
struct | icColorantOrderType |
struct | icColorantTableType |
struct | icChromaticAdaptationType |
struct | icMultiLocalizedUnicodeEntry |
struct | icMultiLocalizedUnicodeType |
struct | icTag |
struct | icTagList |
union | icProfileID |
struct | icHeader |
struct | icProfile |
Defines |
#define | icMagicNumber 0x61637370 |
#define | icVersionNumber 0x02000000 |
#define | icVersionNumberV2_1 0x02100000 |
#define | icVersionNumberV4 0x04000000 |
#define | icVersionNumberV4_2 0x04200000 |
#define | icPrtrDefaultScreensFalse 0x00000000 |
#define | icPrtrDefaultScreensTrue 0x00000001 |
#define | icLinesPerInch 0x00000002 |
#define | icLinesPerCm 0x00000000 |
#define | icReflective 0x00000000 |
#define | icTransparency 0x00000001 |
#define | icGlossy 0x00000000 |
#define | icMatte 0x00000002 |
#define | icMediaPositive 0x00000000 |
#define | icMediaNegative 0x00000004 |
#define | icMediaColour 0x00000000 |
#define | icMediaBlackAndWhite 0x00000008 |
#define | icEmbeddedProfileFalse 0x00000000 |
#define | icEmbeddedProfileTrue 0x00000001 |
#define | icUseAnywhere 0x00000000 |
#define | icUseWithEmbeddedDataOnly 0x00000002 |
#define | icAsciiData 0x00000000 |
#define | icBinaryData 0x00000001 |
#define | icAny 1 |
#define | icMaxFloat32Number 3.402823466e+38F |
#define | icMinFloat32Number -3.402823466e+38F |
#define | icSigUnknownTag ((icTagSignature) 0x3f3f3f3f) |
#define | icMaxEnumTag ((icTagSignature) 0xFFFFFFFF) |
#define | icMaxEnumTechnology ((icTechnologySignature) 0xFFFFFFFF) |
#define | icSigUnknownType ((icTagTypeSignature) 0x3f3f3f3f) |
#define | icMaxEnumType ((icTagTypeSignature) 0xFFFFFFFF) |
#define | icSigUnknownElemType ((icElemTypeSignature) 0x3f3f3f3f) |
#define | icMaxEnumElemType ((icElemTypeSignature) 0xFFFFFFFF) |
#define | icSigMCH1Data ((icColorSpaceSignature) 0x31434C52) |
#define | icSigMCHGData ((icColorSpaceSignature) 0x47434C52) |
#define | icSig1colorData ((icColorSpaceSignature) 0x31434C52) |
#define | icSig16colorData ((icColorSpaceSignature) 0x47434C52) |
#define | icSigGamutData ((icColorSpaceSignature) 0x67616D74) |
#define | icSigUnknownData ((icColorSpaceSignature) 0x3f3f3f3f) |
#define | icMaxEnumData ((icColorSpaceSignature) 0xFFFFFFFF) |
#define | icMaxEnumClass ((icProfileClassSignature) 0xFFFFFFFF) |
#define | icMaxEnumPlatform ((icPlatformSignature) 0xFFFFFFFF) |
#define | icMaxEnumReferenceMediumGamut ((icReferenceMediumGamutSignature 0xFFFFFFFF) |
#define | icMaxEnumColorimetricIntentImageState ((icColorimetricIntentImageStateSignature 0xFFFFFFFF) |
#define | icMaxCurveSegSignature ((icCurveSegSignature 0xFFFFFFFF) |
#define | icMaxCurveElemSignature ((icCurveElemSignature 0xFFFFFFFF) |
#define | icSigAcsZero ((icAcsSignature) 0x00000000) |
#define | icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF) |
#define | icMaxFlare ((icMeasurementFlare) 0xFFFFFFFF) |
#define | icMaxEnumGeometry ((icMeasurementGeometry) 0xFFFFFFFF) |
#define | icMaxGeometry ((icMeasurementGeometry) 0xFFFFFFFF) |
#define | icUnknownIntent ((icRenderingIntent) 0x3f3f3f3f) |
#define | icMaxEnumIntent ((icRenderingIntent) 0xFFFFFFFF) |
#define | icMaxEnumSpot ((icSpotShape) 0xFFFFFFFF) |
#define | icMaxEnumStdObs ((icStandardObserver) 0xFFFFFFFF) |
#define | icMaxStdObs ((icStandardObserver) 0xFFFFFFFF) |
#define | icMaxEnumIlluminant ((icIlluminant) 0xFFFFFFFF) |
#define | icMaxEnumIluminant ((icIlluminant) 0xFFFFFFFF) |
#define | icMaxEnumLanguageCode ((icEnumLanguageCode) 0xFFFF) |
#define | icMaxEnumCountryCode ((icEnumCountryCode) 0xFFFF) |
#define | icMaxEnumMeasurmentUnitSig ((icMeasurementUnitSig) 0xffffffff) |
#define | icMaxEnumColorant ((icColorantEncoding) 0xFFFF) |
Typedefs |
typedef unsigned char | icUInt8Number |
typedef unsigned short | icUInt16Number |
typedef unsigned long | icUInt32Number |
typedef icUInt32Number | icUInt64Number [2] |
typedef icUInt32Number | icSignature |
typedef char | icInt8Number |
typedef short | icInt16Number |
typedef long | icInt32Number |
typedef icInt32Number | icInt64Number [2] |
typedef icInt32Number | icS15Fixed16Number |
typedef icUInt32Number | icU16Fixed16Number |
typedef float | icFloat32Number |
typedef double | icFloat64Number |
typedef icSignature | icAcsSignature |
typedef icUInt16Number | icLanguageCode |
typedef icUInt16Number | icCountryCode |
Enumerations |
enum | icTagSignature {
icSigAToB0Tag = 0x41324230,
icSigAToB1Tag = 0x41324231,
icSigAToB2Tag = 0x41324232,
icSigBlueColorantTag = 0x6258595A,
icSigBlueMatrixColumnTag = 0x6258595A,
icSigBlueTRCTag = 0x62545243,
icSigBToA0Tag = 0x42324130,
icSigBToA1Tag = 0x42324131,
icSigBToA2Tag = 0x42324132,
icSigCalibrationDateTimeTag = 0x63616C74,
icSigCharTargetTag = 0x74617267,
icSigChromaticAdaptationTag = 0x63686164,
icSigChromaticityTag = 0x6368726D,
icSigColorantOrderTag = 0x636C726F,
icSigColorantTableTag = 0x636C7274,
icSigColorantTableOutTag = 0x636C6F74,
icSigColorimetricIntentImageStateTag = 0x63696973,
icSigCopyrightTag = 0x63707274,
icSigCrdInfoTag = 0x63726469,
icSigDataTag = 0x64617461,
icSigDateTimeTag = 0x6474696D,
icSigDeviceMfgDescTag = 0x646D6E64,
icSigDeviceModelDescTag = 0x646D6464,
icSigDeviceSettingsTag = 0x64657673,
icSigDToB0Tag = 0x44324230,
icSigDToB1Tag = 0x44324231,
icSigDToB2Tag = 0x44324232,
icSigDToB3Tag = 0x44324233,
icSigBToD0Tag = 0x42324430,
icSigBToD1Tag = 0x42324431,
icSigBToD2Tag = 0x42324432,
icSigBToD3Tag = 0x42324433,
icSigGamutTag = 0x67616D74,
icSigGrayTRCTag = 0x6b545243,
icSigGreenColorantTag = 0x6758595A,
icSigGreenMatrixColumnTag = 0x6758595A,
icSigGreenTRCTag = 0x67545243,
icSigLuminanceTag = 0x6C756d69,
icSigMeasurementTag = 0x6D656173,
icSigMediaBlackPointTag = 0x626B7074,
icSigMediaWhitePointTag = 0x77747074,
icSigNamedColor2Tag = 0x6E636C32,
icSigOutputResponseTag = 0x72657370,
icSigPerceptualRenderingIntentGamutTag = 0x72696730,
icSigPreview0Tag = 0x70726530,
icSigPreview1Tag = 0x70726531,
icSigPreview2Tag = 0x70726532,
icSigProfileDescriptionTag = 0x64657363,
icSigProfileSequenceDescTag = 0x70736571,
icSigProfileSequceIdTag = 0x70736964,
icSigPs2CRD0Tag = 0x70736430,
icSigPs2CRD1Tag = 0x70736431,
icSigPs2CRD2Tag = 0x70736432,
icSigPs2CRD3Tag = 0x70736433,
icSigPs2CSATag = 0x70733273,
icSigPs2RenderingIntentTag = 0x70733269,
icSigRedColorantTag = 0x7258595A,
icSigRedMatrixColumnTag = 0x7258595A,
icSigRedTRCTag = 0x72545243,
icSigSaturationRenderingIntentGamutTag = 0x72696732,
icSigScreeningDescTag = 0x73637264,
icSigScreeningTag = 0x7363726E,
icSigTechnologyTag = 0x74656368,
icSigUcrBgTag = 0x62666420,
icSigViewingCondDescTag = 0x76756564,
icSigViewingConditionsTag = 0x76696577
} |
enum | icTechnologySignature {
icSigDigitalCamera = 0x6463616D,
icSigFilmScanner = 0x6673636E,
icSigReflectiveScanner = 0x7273636E,
icSigInkJetPrinter = 0x696A6574,
icSigThermalWaxPrinter = 0x74776178,
icSigElectrophotographicPrinter = 0x6570686F,
icSigElectrostaticPrinter = 0x65737461,
icSigDyeSublimationPrinter = 0x64737562,
icSigPhotographicPaperPrinter = 0x7270686F,
icSigFilmWriter = 0x6670726E,
icSigVideoMonitor = 0x7669646D,
icSigVideoCamera = 0x76696463,
icSigProjectionTelevision = 0x706A7476,
icSigCRTDisplay = 0x43525420,
icSigPMDisplay = 0x504D4420,
icSigAMDisplay = 0x414D4420,
icSigPhotoCD = 0x4B504344,
icSigPhotoImageSetter = 0x696D6773,
icSigGravure = 0x67726176,
icSigOffsetLithography = 0x6F666673,
icSigSilkscreen = 0x73696C6B,
icSigFlexography = 0x666C6578,
icSigMotionPictureFilmScanner = 0x6D706673,
icSigMotionPictureFilmRecorder = 0x6D706672,
icSigDigitalMotionPictureCamera = 0x646D7063,
icSigDigitalCinemaProjector = 0x64636A70
} |
enum | icTagTypeSignature {
icSigChromaticityType = 0x6368726D,
icSigColorantOrderType = 0x636C726F,
icSigColorantTableType = 0x636C7274,
icSigCrdInfoType = 0x63726469,
icSigCurveType = 0x63757276,
icSigDataType = 0x64617461,
icSigDateTimeType = 0x6474696D,
icSigDeviceSettingsType = 0x64657673,
icSigLut16Type = 0x6d667432,
icSigLut8Type = 0x6d667431,
icSigLutAtoBType = 0x6d414220,
icSigLutBtoAType = 0x6d424120,
icSigMeasurementType = 0x6D656173,
icSigMultiLocalizedUnicodeType = 0x6D6C7563,
icSigMultiProcessElementType = 0x6D706574,
icSigNamedColor2Type = 0x6E636C32,
icSigParametricCurveType = 0x70617261,
icSigProfileSequenceDescType = 0x70736571,
icSigProfileSequceIdType = 0x70736964,
icSigResponseCurveSet16Type = 0x72637332,
icSigS15Fixed16ArrayType = 0x73663332,
icSigScreeningType = 0x7363726E,
icSigSignatureType = 0x73696720,
icSigTextType = 0x74657874,
icSigTextDescriptionType = 0x64657363,
icSigU16Fixed16ArrayType = 0x75663332,
icSigUcrBgType = 0x62666420,
icSigUInt16ArrayType = 0x75693136,
icSigUInt32ArrayType = 0x75693332,
icSigUInt64ArrayType = 0x75693634,
icSigUInt8ArrayType = 0x75693038,
icSigViewingConditionsType = 0x76696577,
icSigXYZType = 0x58595A20,
icSigXYZArrayType = 0x58595A20
} |
enum | icElemTypeSignature {
icSigCurveSetElemType = 0x63767374,
icSigMatrixElemType = 0x6D617466,
icSigCLutElemType = 0x636C7574,
icSigBAcsElemType = 0x62414353,
icSigEAcsElemType = 0x65414353
} |
enum | icColorSpaceSignature {
icSigXYZData = 0x58595A20,
icSigLabData = 0x4C616220,
icSigLuvData = 0x4C757620,
icSigYCbCrData = 0x59436272,
icSigYxyData = 0x59787920,
icSigRgbData = 0x52474220,
icSigGrayData = 0x47524159,
icSigHsvData = 0x48535620,
icSigHlsData = 0x484C5320,
icSigCmykData = 0x434D594B,
icSigCmyData = 0x434D5920,
icSigMCH2Data = 0x32434C52,
icSigMCH3Data = 0x33434C52,
icSigMCH4Data = 0x34434C52,
icSigMCH5Data = 0x35434C52,
icSigMCH6Data = 0x36434C52,
icSigMCH7Data = 0x37434C52,
icSigMCH8Data = 0x38434C52,
icSigMCH9Data = 0x39434C52,
icSigMCHAData = 0x41434C52,
icSigMCHBData = 0x42434C52,
icSigMCHCData = 0x43434C52,
icSigMCHDData = 0x44434C52,
icSigMCHEData = 0x45434C52,
icSigMCHFData = 0x46434C52,
icSigNamedData = 0x6e6d636c,
icSig2colorData = 0x32434C52,
icSig3colorData = 0x33434C52,
icSig4colorData = 0x34434C52,
icSig5colorData = 0x35434C52,
icSig6colorData = 0x36434C52,
icSig7colorData = 0x37434C52,
icSig8colorData = 0x38434C52,
icSig9colorData = 0x39434C52,
icSig10colorData = 0x41434C52,
icSig11colorData = 0x42434C52,
icSig12colorData = 0x43434C52,
icSig13colorData = 0x44434C52,
icSig14colorData = 0x45434C52,
icSig15colorData = 0x46434C52
} |
enum | icProfileClassSignature {
icSigInputClass = 0x73636E72,
icSigDisplayClass = 0x6D6E7472,
icSigOutputClass = 0x70727472,
icSigLinkClass = 0x6C696E6B,
icSigAbstractClass = 0x61627374,
icSigColorSpaceClass = 0x73706163,
icSigNamedColorClass = 0x6e6d636c
} |
enum | icPlatformSignature {
icSigMacintosh = 0x4150504C,
icSigMicrosoft = 0x4D534654,
icSigSolaris = 0x53554E57,
icSigSGI = 0x53474920,
icSigTaligent = 0x54474E54
} |
enum | icReferenceMediumGamutSignature { icSigPerceptualReferenceMediumGamut = 0x70726d67
} |
enum | icColorimetricIntentImageStateSignature {
icSigSceneColorimetryEstimates = 0x73636F65,
icSigSceneAppearanceEstimates = 0x73617065,
icSigFocalPlaneColorimetryEstimates = 0x66706365,
icSigReflectionHardcopyOriginalColorimetry = 0x72686F63,
icSigReflectionPrintOutputColorimetry = 0x72706F63
} |
enum | icCurveSegSignature { icSigFormulaCurveSeg = 0x70617266,
icSigSampledCurveSeg = 0x73616D66
} |
enum | icCurveElemSignature { icSigSementedCurve = 0x63757266
} |
enum | icMeasurementFlare { icFlare0 = 0x00000000,
icFlare100 = 0x00000001
} |
enum | icMeasurementGeometry { icGeometryUnknown = 0x00000000,
icGeometry045or450 = 0x00000001,
icGeometry0dord0 = 0x00000002
} |
enum | icRenderingIntent { icPerceptual = 0,
icRelativeColorimetric = 1,
icSaturation = 2,
icAbsoluteColorimetric = 3
} |
enum | icSpotShape {
icSpotShapeUnknown = 0,
icSpotShapePrinterDefault = 1,
icSpotShapeRound = 2,
icSpotShapeDiamond = 3,
icSpotShapeEllipse = 4,
icSpotShapeLine = 5,
icSpotShapeSquare = 6,
icSpotShapeCross = 7
} |
enum | icStandardObserver { icStdObsUnknown = 0x00000000,
icStdObs1931TwoDegrees = 0x00000001,
icStdObs1964TenDegrees = 0x00000002
} |
enum | icIlluminant {
icIlluminantUnknown = 0x00000000,
icIlluminantD50 = 0x00000001,
icIlluminantD65 = 0x00000002,
icIlluminantD93 = 0x00000003,
icIlluminantF2 = 0x00000004,
icIlluminantD55 = 0x00000005,
icIlluminantA = 0x00000006,
icIlluminantEquiPowerE = 0x00000007,
icIlluminantF8 = 0x00000008
} |
enum | icEnumLanguageCode {
icLanguageCodeEnglish = 0x656E,
icLanguageCodeGerman = 0x6465,
icLanguageCodeItalian = 0x6974,
icLanguageCodeDutch = 0x6E6C,
icLanguageCodeSweden = 0x7376,
icLanguageCodeSpanish = 0x6573,
icLanguageCodeDanish = 0x6461,
icLanguageCodeNorwegian = 0x6E6F,
icLanguageCodeJapanese = 0x6A61,
icLanguageCodeFinnish = 0x6669,
icLanguageCodeTurkish = 0x7472,
icLanguageCodeKorean = 0x6B6F,
icLanguageCodeChinese = 0x7A68,
icLanguageCodeFrench = 0x6672
} |
enum | icEnumCountryCode {
icCountryCodeUSA = 0x5553,
icCountryCodeUnitedKingdom = 0x554B,
icCountryCodeGermany = 0x4445,
icCountryCodeItaly = 0x4954,
icCountryCodeNetherlands = 0x4E4C,
icCountryCodeSpain = 0x4543,
icCountryCodeDenmark = 0x444B,
icCountryCodeNorway = 0x4E4F,
icCountryCodeJapan = 0x4A50,
icCountryCodeFinland = 0x4649,
icCountryCodeTurkey = 0x5452,
icCountryCodeKorea = 0x4B52,
icCountryCodeChina = 0x434E,
icCountryCodeTaiwan = 0x5457,
icCountryCodeFrance = 0x4652
} |
enum | icMeasurementUnitSig {
icSigStatusA = 0x53746141,
icSigStatusE = 0x53746145,
icSigStatusI = 0x53746149,
icSigStatusT = 0x53746154,
icSigStatusM = 0x5374614D,
icSigDN = 0x444E2020,
icSigDNP = 0x444E2050,
icSigDNN = 0x444E4E20,
icSigDNNP = 0x444E4E50
} |
enum | icColorantEncoding {
icColorantUnknown = 0x0000,
icColorantITU = 0x0001,
icColorantSMPTE = 0x0002,
icColorantEBU = 0x0003,
icColorantP22 = 0x0004
} |
enum | icMSFTDevSetSig { icMSFTDevSetResolution = 0x72736C6E,
icMSFTDevSetMediaType = 0x6D747970,
icMSFTDevSetMediaHalftone = 0x6866746E
} |
enum | icDMMediaType { icDMMediaStandard = 0x0001,
icDMMediaTransparancy = 0x0002,
icDMMediaGlossy = 0x0003,
icDMMediaUser = 0x0100
} |
enum | icDMHalftoneType {
icDMDitherNone = 0x0001,
icDMDitherCoarse = 0x0002,
icDMDitherFine = 0x0003,
icDMDitherLineArt = 0x0004,
icDMDitherErrorDiffusion = 0x0005,
icDMDitherReserved6 = 0x0006,
icDMDitherReserved7 = 0x0007,
icDMDitherReserved8 = 0x0008,
icDMDitherReserved9 = 0x0009,
icDMDitherGrayscale = 0x000A,
icDMDitherUser = 0x0100
} |
All header file entries are pre-fixed with "ic" to help avoid name space collisions. Signatures are pre-fixed with icSig.
The structures defined in this header file were created to represent a description of an ICC profile on disk. Rather than use pointers a technique is used where a single byte array was placed at the end of each structure. This allows us in "C" to extend the structure by allocating more data than is needed to account for variable length structures.
This also ensures that data following is allocated contiguously and makes it easier to write and read data from the file.
For example to allocate space for a 256 count length UCR and BG array, and fill the allocated data. Note strlen + 1 to remember NULL terminator.
strcpy(ucr_string, "Example ucrBG curves"); ucr_nbytes = sizeof(icUInt32Number) + (UCR_CURVE_SIZE * sizeof(icUInt16Number)); bg_nbytes = sizeof(icUInt32Number) + (BG_CURVE_SIZE * sizeof(icUInt16Number)); string_bytes = strlen(ucr_string) + 1;
ucr_char = (char *)((char *)bgCurve + bg_nbytes); memcpy(ucr_char, ucr_string, string_bytes);
Many of the structures contain variable length arrays. This is represented by the use of the convention.