00001
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163 #ifndef icPROFILEHEADER_H
00164 #define icPROFILEHEADER_H
00165
00166
00167
00168
00169
00170
00171 #ifdef ICSETBYTEPACKING
00172 #pragma pack(1)
00173 #endif
00174
00175
00176
00180 #define icMagicNumber 0x61637370
00181 #define icVersionNumber 0x02000000
00182 #define icVersionNumberV2_1 0x02100000
00183 #define icVersionNumberV4 0x04000000
00184 #define icVersionNumberV4_2 0x04200000
00185
00187 #define icPrtrDefaultScreensFalse 0x00000000
00188 #define icPrtrDefaultScreensTrue 0x00000001
00189 #define icLinesPerInch 0x00000002
00190 #define icLinesPerCm 0x00000000
00191
00197 #define icReflective 0x00000000
00198 #define icTransparency 0x00000001
00199 #define icGlossy 0x00000000
00200 #define icMatte 0x00000002
00201 #define icMediaPositive 0x00000000
00202 #define icMediaNegative 0x00000004
00203 #define icMediaColour 0x00000000
00204 #define icMediaBlackAndWhite 0x00000008
00205
00210 #define icEmbeddedProfileFalse 0x00000000
00211 #define icEmbeddedProfileTrue 0x00000001
00212 #define icUseAnywhere 0x00000000
00213 #define icUseWithEmbeddedDataOnly 0x00000002
00214
00216 #define icAsciiData 0x00000000
00217 #define icBinaryData 0x00000001
00218
00222 #define icAny 1
00223
00237 #ifdef ICUINT8TYPE
00238 typedef ICUINT8TYPE icUInt8Number;
00239 #else
00240 typedef unsigned char icUInt8Number;
00241 #endif
00242
00243 #ifdef ICUINT16TYPE
00244 typedef ICUINT16TYPE icUInt16Number;
00245 #else
00246 typedef unsigned short icUInt16Number;
00247 #endif
00248
00249 #ifdef ICUINT32TYPE
00250 typedef ICUINT32TYPE icUInt32Number;
00251 #else
00252 typedef unsigned long icUInt32Number;
00253 #endif
00254
00255 #ifdef ICUINT64TYPE
00256 typedef ICUINT64TYPE icUInt64Number;
00257 #else
00258 typedef icUInt32Number icUInt64Number[2];
00259 #endif
00260
00261 typedef icUInt32Number icSignature;
00262
00263
00265 #ifdef ICINT8TYPE
00266 typedef ICINT8TYPE icInt8Number;
00267 #else
00268 typedef char icInt8Number;
00269 #endif
00270
00271 #ifdef ICINT16TYPE
00272 typedef ICINT16TYPE icInt16Number;
00273 #else
00274 typedef short icInt16Number;
00275 #endif
00276
00277 #ifdef ICINT32TYPE
00278 typedef ICINT32TYPE icInt32Number;
00279 #else
00280 typedef long icInt32Number;
00281 #endif
00282
00283 #ifdef ICINT64TYPE
00284 typedef ICINT64TYPE icInt64Number;
00285 #else
00286 typedef icInt32Number icInt64Number[2];
00287 #endif
00288
00289
00291 typedef icInt32Number icS15Fixed16Number;
00292 typedef icUInt32Number icU16Fixed16Number;
00293
00294
00296 typedef float icFloat32Number;
00297 typedef double icFloat64Number;
00298
00300 #define icMaxFloat32Number 3.402823466e+38F
00301 #define icMinFloat32Number -3.402823466e+38F
00302
00303
00304
00308 typedef enum {
00309 icSigAToB0Tag = 0x41324230,
00310 icSigAToB1Tag = 0x41324231,
00311 icSigAToB2Tag = 0x41324232,
00312 icSigBlueColorantTag = 0x6258595A,
00313 icSigBlueMatrixColumnTag = 0x6258595A,
00314 icSigBlueTRCTag = 0x62545243,
00315 icSigBToA0Tag = 0x42324130,
00316 icSigBToA1Tag = 0x42324131,
00317 icSigBToA2Tag = 0x42324132,
00318 icSigCalibrationDateTimeTag = 0x63616C74,
00319 icSigCharTargetTag = 0x74617267,
00320 icSigChromaticAdaptationTag = 0x63686164,
00321 icSigChromaticityTag = 0x6368726D,
00322 icSigColorantOrderTag = 0x636C726F,
00323 icSigColorantTableTag = 0x636C7274,
00324 icSigColorantTableOutTag = 0x636C6F74,
00325 icSigColorimetricIntentImageStateTag = 0x63696973,
00326 icSigCopyrightTag = 0x63707274,
00327 icSigCrdInfoTag = 0x63726469,
00328 icSigDataTag = 0x64617461,
00329 icSigDateTimeTag = 0x6474696D,
00330 icSigDeviceMfgDescTag = 0x646D6E64,
00331 icSigDeviceModelDescTag = 0x646D6464,
00332 icSigDeviceSettingsTag = 0x64657673,
00333 icSigDToB0Tag = 0x44324230,
00334 icSigDToB1Tag = 0x44324231,
00335 icSigDToB2Tag = 0x44324232,
00336 icSigDToB3Tag = 0x44324233,
00337 icSigBToD0Tag = 0x42324430,
00338 icSigBToD1Tag = 0x42324431,
00339 icSigBToD2Tag = 0x42324432,
00340 icSigBToD3Tag = 0x42324433,
00341 icSigGamutTag = 0x67616D74,
00342 icSigGrayTRCTag = 0x6b545243,
00343 icSigGreenColorantTag = 0x6758595A,
00344 icSigGreenMatrixColumnTag = 0x6758595A,
00345 icSigGreenTRCTag = 0x67545243,
00346 icSigLuminanceTag = 0x6C756d69,
00347 icSigMeasurementTag = 0x6D656173,
00348 icSigMediaBlackPointTag = 0x626B7074,
00349 icSigMediaWhitePointTag = 0x77747074,
00350 #if 0
00351 icSigNamedColorTag = 0x6E636f6C,
00352 #endif
00353 icSigNamedColor2Tag = 0x6E636C32,
00354 icSigOutputResponseTag = 0x72657370,
00355 icSigPerceptualRenderingIntentGamutTag = 0x72696730,
00356 icSigPreview0Tag = 0x70726530,
00357 icSigPreview1Tag = 0x70726531,
00358 icSigPreview2Tag = 0x70726532,
00359 icSigProfileDescriptionTag = 0x64657363,
00360 icSigProfileSequenceDescTag = 0x70736571,
00361 icSigProfileSequceIdTag = 0x70736964,
00362 icSigPs2CRD0Tag = 0x70736430,
00363 icSigPs2CRD1Tag = 0x70736431,
00364 icSigPs2CRD2Tag = 0x70736432,
00365 icSigPs2CRD3Tag = 0x70736433,
00366 icSigPs2CSATag = 0x70733273,
00367 icSigPs2RenderingIntentTag = 0x70733269,
00368 icSigRedColorantTag = 0x7258595A,
00369 icSigRedMatrixColumnTag = 0x7258595A,
00370 icSigRedTRCTag = 0x72545243,
00371 icSigSaturationRenderingIntentGamutTag = 0x72696732,
00372 icSigScreeningDescTag = 0x73637264,
00373 icSigScreeningTag = 0x7363726E,
00374 icSigTechnologyTag = 0x74656368,
00375 icSigUcrBgTag = 0x62666420,
00376 icSigViewingCondDescTag = 0x76756564,
00377 icSigViewingConditionsTag = 0x76696577,
00378 } icTagSignature;
00379
00381 #define icSigUnknownTag ((icTagSignature) 0x3f3f3f3f)
00382 #define icMaxEnumTag ((icTagSignature) 0xFFFFFFFF)
00383
00384
00385
00389 typedef enum {
00390 icSigDigitalCamera = 0x6463616D,
00391 icSigFilmScanner = 0x6673636E,
00392 icSigReflectiveScanner = 0x7273636E,
00393 icSigInkJetPrinter = 0x696A6574,
00394 icSigThermalWaxPrinter = 0x74776178,
00395 icSigElectrophotographicPrinter = 0x6570686F,
00396 icSigElectrostaticPrinter = 0x65737461,
00397 icSigDyeSublimationPrinter = 0x64737562,
00398 icSigPhotographicPaperPrinter = 0x7270686F,
00399 icSigFilmWriter = 0x6670726E,
00400 icSigVideoMonitor = 0x7669646D,
00401 icSigVideoCamera = 0x76696463,
00402 icSigProjectionTelevision = 0x706A7476,
00403 icSigCRTDisplay = 0x43525420,
00404 icSigPMDisplay = 0x504D4420,
00405 icSigAMDisplay = 0x414D4420,
00406 icSigPhotoCD = 0x4B504344,
00407 icSigPhotoImageSetter = 0x696D6773,
00408 icSigGravure = 0x67726176,
00409 icSigOffsetLithography = 0x6F666673,
00410 icSigSilkscreen = 0x73696C6B,
00411 icSigFlexography = 0x666C6578,
00412 icSigMotionPictureFilmScanner = 0x6D706673,
00413 icSigMotionPictureFilmRecorder = 0x6D706672,
00414 icSigDigitalMotionPictureCamera = 0x646D7063,
00415 icSigDigitalCinemaProjector = 0x64636A70,
00416 } icTechnologySignature;
00417
00419 #define icMaxEnumTechnology ((icTechnologySignature) 0xFFFFFFFF)
00420
00424 typedef enum {
00425 icSigChromaticityType = 0x6368726D,
00426 icSigColorantOrderType = 0x636C726F,
00427 icSigColorantTableType = 0x636C7274,
00428 icSigCrdInfoType = 0x63726469,
00429 icSigCurveType = 0x63757276,
00430 icSigDataType = 0x64617461,
00431 icSigDateTimeType = 0x6474696D,
00432 icSigDeviceSettingsType = 0x64657673,
00433 icSigLut16Type = 0x6d667432,
00434 icSigLut8Type = 0x6d667431,
00435 icSigLutAtoBType = 0x6d414220,
00436 icSigLutBtoAType = 0x6d424120,
00437 icSigMeasurementType = 0x6D656173,
00438 icSigMultiLocalizedUnicodeType = 0x6D6C7563,
00439 icSigMultiProcessElementType = 0x6D706574,
00440 #if 0
00441 icSigNamedColorType = 0x6E636f6C,
00442 #endif
00443 icSigNamedColor2Type = 0x6E636C32,
00444 icSigParametricCurveType = 0x70617261,
00445 icSigProfileSequenceDescType = 0x70736571,
00446 icSigProfileSequceIdType = 0x70736964,
00447 icSigResponseCurveSet16Type = 0x72637332,
00448 icSigS15Fixed16ArrayType = 0x73663332,
00449 icSigScreeningType = 0x7363726E,
00450 icSigSignatureType = 0x73696720,
00451 icSigTextType = 0x74657874,
00452 icSigTextDescriptionType = 0x64657363,
00453 icSigU16Fixed16ArrayType = 0x75663332,
00454 icSigUcrBgType = 0x62666420,
00455 icSigUInt16ArrayType = 0x75693136,
00456 icSigUInt32ArrayType = 0x75693332,
00457 icSigUInt64ArrayType = 0x75693634,
00458 icSigUInt8ArrayType = 0x75693038,
00459 icSigViewingConditionsType = 0x76696577,
00460 icSigXYZType = 0x58595A20,
00461 icSigXYZArrayType = 0x58595A20,
00462 } icTagTypeSignature;
00463
00465 #define icSigUnknownType ((icTagTypeSignature) 0x3f3f3f3f)
00466 #define icMaxEnumType ((icTagTypeSignature) 0xFFFFFFFF)
00467
00471 typedef enum {
00472
00473 icSigCurveSetElemType = 0x63767374,
00474 icSigMatrixElemType = 0x6D617466,
00475 icSigCLutElemType = 0x636C7574,
00476 icSigBAcsElemType = 0x62414353,
00477 icSigEAcsElemType = 0x65414353,
00478 } icElemTypeSignature;
00480 #define icSigUnknownElemType ((icElemTypeSignature) 0x3f3f3f3f)
00481 #define icMaxEnumElemType ((icElemTypeSignature) 0xFFFFFFFF)
00482
00483
00489 typedef enum {
00490 icSigXYZData = 0x58595A20,
00491 icSigLabData = 0x4C616220,
00492 icSigLuvData = 0x4C757620,
00493 icSigYCbCrData = 0x59436272,
00494 icSigYxyData = 0x59787920,
00495 icSigRgbData = 0x52474220,
00496 icSigGrayData = 0x47524159,
00497 icSigHsvData = 0x48535620,
00498 icSigHlsData = 0x484C5320,
00499 icSigCmykData = 0x434D594B,
00500 icSigCmyData = 0x434D5920,
00501
00502 icSigMCH2Data = 0x32434C52,
00503 icSigMCH3Data = 0x33434C52,
00504 icSigMCH4Data = 0x34434C52,
00505 icSigMCH5Data = 0x35434C52,
00506 icSigMCH6Data = 0x36434C52,
00507 icSigMCH7Data = 0x37434C52,
00508 icSigMCH8Data = 0x38434C52,
00509 icSigMCH9Data = 0x39434C52,
00510 icSigMCHAData = 0x41434C52,
00511 icSigMCHBData = 0x42434C52,
00512 icSigMCHCData = 0x43434C52,
00513 icSigMCHDData = 0x44434C52,
00514 icSigMCHEData = 0x45434C52,
00515 icSigMCHFData = 0x46434C52,
00516 icSigNamedData = 0x6e6d636c,
00517
00518 icSig2colorData = 0x32434C52,
00519 icSig3colorData = 0x33434C52,
00520 icSig4colorData = 0x34434C52,
00521 icSig5colorData = 0x35434C52,
00522 icSig6colorData = 0x36434C52,
00523 icSig7colorData = 0x37434C52,
00524 icSig8colorData = 0x38434C52,
00525 icSig9colorData = 0x39434C52,
00526 icSig10colorData = 0x41434C52,
00527 icSig11colorData = 0x42434C52,
00528 icSig12colorData = 0x43434C52,
00529 icSig13colorData = 0x44434C52,
00530 icSig14colorData = 0x45434C52,
00531 icSig15colorData = 0x46434C52,
00532
00533 } icColorSpaceSignature;
00534
00536 #define icSigMCH1Data ((icColorSpaceSignature) 0x31434C52)
00537 #define icSigMCHGData ((icColorSpaceSignature) 0x47434C52)
00538 #define icSig1colorData ((icColorSpaceSignature) 0x31434C52)
00539 #define icSig16colorData ((icColorSpaceSignature) 0x47434C52)
00540
00542 #define icSigGamutData ((icColorSpaceSignature) 0x67616D74)
00543 #define icSigUnknownData ((icColorSpaceSignature) 0x3f3f3f3f)
00544 #define icMaxEnumData ((icColorSpaceSignature) 0xFFFFFFFF)
00545
00546
00547
00549 typedef enum {
00550 icSigInputClass = 0x73636E72,
00551 icSigDisplayClass = 0x6D6E7472,
00552 icSigOutputClass = 0x70727472,
00553 icSigLinkClass = 0x6C696E6B,
00554 icSigAbstractClass = 0x61627374,
00555 icSigColorSpaceClass = 0x73706163,
00556 icSigNamedColorClass = 0x6e6d636c,
00557 } icProfileClassSignature;
00558
00560 #define icMaxEnumClass ((icProfileClassSignature) 0xFFFFFFFF)
00561
00562
00563
00565 typedef enum {
00566 icSigMacintosh = 0x4150504C,
00567 icSigMicrosoft = 0x4D534654,
00568 icSigSolaris = 0x53554E57,
00569 icSigSGI = 0x53474920,
00570 icSigTaligent = 0x54474E54,
00571 } icPlatformSignature;
00572
00574 #define icMaxEnumPlatform ((icPlatformSignature) 0xFFFFFFFF)
00575
00576
00577
00579 typedef enum {
00580 icSigPerceptualReferenceMediumGamut = 0x70726d67,
00581 } icReferenceMediumGamutSignature;
00582
00584 #define icMaxEnumReferenceMediumGamut ((icReferenceMediumGamutSignature 0xFFFFFFFF)
00585
00586
00588 typedef enum {
00589 icSigSceneColorimetryEstimates = 0x73636F65,
00590 icSigSceneAppearanceEstimates = 0x73617065,
00591 icSigFocalPlaneColorimetryEstimates = 0x66706365,
00592 icSigReflectionHardcopyOriginalColorimetry = 0x72686F63,
00593 icSigReflectionPrintOutputColorimetry = 0x72706F63,
00594 } icColorimetricIntentImageStateSignature;
00595
00597 #define icMaxEnumColorimetricIntentImageState ((icColorimetricIntentImageStateSignature 0xFFFFFFFF)
00598
00599
00603 typedef enum {
00604 icSigFormulaCurveSeg = 0x70617266,
00605 icSigSampledCurveSeg = 0x73616D66,
00606 } icCurveSegSignature;
00607
00609 #define icMaxCurveSegSignature ((icCurveSegSignature 0xFFFFFFFF)
00610
00614 typedef enum {
00615 icSigSementedCurve = 0x63757266,
00616 } icCurveElemSignature;
00617
00619 #define icMaxCurveElemSignature ((icCurveElemSignature 0xFFFFFFFF)
00620
00625 typedef icSignature icAcsSignature;
00626
00628 #define icSigAcsZero ((icAcsSignature) 0x00000000)
00629
00630
00631
00637 typedef enum {
00638 icFlare0 = 0x00000000,
00639 icFlare100 = 0x00000001,
00640 } icMeasurementFlare;
00641
00643 #define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF)
00644 #define icMaxFlare ((icMeasurementFlare) 0xFFFFFFFF)
00645
00646
00647
00649 typedef enum {
00650 icGeometryUnknown = 0x00000000,
00651 icGeometry045or450 = 0x00000001,
00652 icGeometry0dord0 = 0x00000002,
00653 } icMeasurementGeometry;
00654
00656 #define icMaxEnumGeometry ((icMeasurementGeometry) 0xFFFFFFFF)
00657 #define icMaxGeometry ((icMeasurementGeometry) 0xFFFFFFFF)
00658
00659
00660
00662 typedef enum {
00663 icPerceptual = 0,
00664 icRelativeColorimetric = 1,
00665 icSaturation = 2,
00666 icAbsoluteColorimetric = 3,
00667 } icRenderingIntent;
00668
00670 #define icUnknownIntent ((icRenderingIntent) 0x3f3f3f3f)
00671 #define icMaxEnumIntent ((icRenderingIntent) 0xFFFFFFFF)
00672
00673
00674
00676 typedef enum {
00677 icSpotShapeUnknown = 0,
00678 icSpotShapePrinterDefault = 1,
00679 icSpotShapeRound = 2,
00680 icSpotShapeDiamond = 3,
00681 icSpotShapeEllipse = 4,
00682 icSpotShapeLine = 5,
00683 icSpotShapeSquare = 6,
00684 icSpotShapeCross = 7,
00685 } icSpotShape;
00686
00688 #define icMaxEnumSpot ((icSpotShape) 0xFFFFFFFF)
00689
00690
00691
00693 typedef enum {
00694 icStdObsUnknown = 0x00000000,
00695 icStdObs1931TwoDegrees = 0x00000001,
00696 icStdObs1964TenDegrees = 0x00000002,
00697 } icStandardObserver;
00698
00700 #define icMaxEnumStdObs ((icStandardObserver) 0xFFFFFFFF)
00701 #define icMaxStdObs ((icStandardObserver) 0xFFFFFFFF)
00702
00703
00704
00706 typedef enum {
00707 icIlluminantUnknown = 0x00000000,
00708 icIlluminantD50 = 0x00000001,
00709 icIlluminantD65 = 0x00000002,
00710 icIlluminantD93 = 0x00000003,
00711 icIlluminantF2 = 0x00000004,
00712 icIlluminantD55 = 0x00000005,
00713 icIlluminantA = 0x00000006,
00714 icIlluminantEquiPowerE = 0x00000007,
00715 icIlluminantF8 = 0x00000008,
00716 } icIlluminant;
00717
00719 #define icMaxEnumIlluminant ((icIlluminant) 0xFFFFFFFF)
00720 #define icMaxEnumIluminant ((icIlluminant) 0xFFFFFFFF)
00721
00722
00723
00725 typedef enum {
00726 icLanguageCodeEnglish = 0x656E,
00727 icLanguageCodeGerman = 0x6465,
00728 icLanguageCodeItalian = 0x6974,
00729 icLanguageCodeDutch = 0x6E6C,
00730 icLanguageCodeSweden = 0x7376,
00731 icLanguageCodeSpanish = 0x6573,
00732 icLanguageCodeDanish = 0x6461,
00733 icLanguageCodeNorwegian = 0x6E6F,
00734 icLanguageCodeJapanese = 0x6A61,
00735 icLanguageCodeFinnish = 0x6669,
00736 icLanguageCodeTurkish = 0x7472,
00737 icLanguageCodeKorean = 0x6B6F,
00738 icLanguageCodeChinese = 0x7A68,
00739 icLanguageCodeFrench = 0x6672,
00740 } icEnumLanguageCode;
00741 typedef icUInt16Number icLanguageCode;
00742
00744 #define icMaxEnumLanguageCode ((icEnumLanguageCode) 0xFFFF)
00745
00746
00747
00751 typedef enum {
00752 icCountryCodeUSA = 0x5553,
00753 icCountryCodeUnitedKingdom = 0x554B,
00754 icCountryCodeGermany = 0x4445,
00755 icCountryCodeItaly = 0x4954,
00756 icCountryCodeNetherlands = 0x4E4C,
00757 icCountryCodeSpain = 0x4543,
00758 icCountryCodeDenmark = 0x444B,
00759 icCountryCodeNorway = 0x4E4F,
00760 icCountryCodeJapan = 0x4A50,
00761 icCountryCodeFinland = 0x4649,
00762 icCountryCodeTurkey = 0x5452,
00763 icCountryCodeKorea = 0x4B52,
00764 icCountryCodeChina = 0x434E,
00765 icCountryCodeTaiwan = 0x5457,
00766 icCountryCodeFrance = 0x4652,
00767 } icEnumCountryCode;
00768 typedef icUInt16Number icCountryCode;
00769
00771 #define icMaxEnumCountryCode ((icEnumCountryCode) 0xFFFF)
00772
00773
00774
00776 typedef enum {
00777 icSigStatusA = 0x53746141,
00778 icSigStatusE = 0x53746145,
00779 icSigStatusI = 0x53746149,
00780 icSigStatusT = 0x53746154,
00781 icSigStatusM = 0x5374614D,
00782 icSigDN = 0x444E2020,
00783 icSigDNP = 0x444E2050,
00784 icSigDNN = 0x444E4E20,
00785 icSigDNNP = 0x444E4E50,
00786 } icMeasurementUnitSig;
00787
00789 #define icMaxEnumMeasurmentUnitSig ((icMeasurementUnitSig) 0xffffffff)
00790
00791
00792
00794 typedef enum {
00795 icColorantUnknown = 0x0000,
00796 icColorantITU = 0x0001,
00797 icColorantSMPTE = 0x0002,
00798 icColorantEBU = 0x0003,
00799 icColorantP22 = 0x0004,
00800 } icColorantEncoding;
00801
00803 #define icMaxEnumColorant ((icColorantEncoding) 0xFFFF)
00804
00805
00812 typedef enum {
00813 icMSFTDevSetResolution = 0x72736C6E,
00814 icMSFTDevSetMediaType = 0x6D747970,
00815 icMSFTDevSetMediaHalftone = 0x6866746E,
00816 } icMSFTDevSetSig;
00817
00819 typedef enum {
00820 icDMMediaStandard = 0x0001,
00821 icDMMediaTransparancy = 0x0002,
00822 icDMMediaGlossy = 0x0003,
00823 icDMMediaUser = 0x0100,
00824
00825 } icDMMediaType;
00826
00828 typedef enum {
00829 icDMDitherNone = 0x0001,
00830 icDMDitherCoarse = 0x0002,
00831 icDMDitherFine = 0x0003,
00832 icDMDitherLineArt = 0x0004,
00833 icDMDitherErrorDiffusion = 0x0005,
00834 icDMDitherReserved6 = 0x0006,
00835 icDMDitherReserved7 = 0x0007,
00836 icDMDitherReserved8 = 0x0008,
00837 icDMDitherReserved9 = 0x0009,
00838 icDMDitherGrayscale = 0x000A,
00839 icDMDitherUser = 0x0100,
00840
00841 } icDMHalftoneType;
00842
00850 typedef struct {
00851 icInt8Number data[icAny];
00852 } icInt8Array;
00853
00855 typedef struct {
00856 icUInt8Number data[icAny];
00857 } icUInt8Array;
00858
00860 typedef struct {
00861 icUInt16Number data[icAny];
00862 } icUInt16Array;
00863
00865 typedef struct {
00866 icInt16Number data[icAny];
00867 } icInt16Array;
00868
00870 typedef struct {
00871 icUInt32Number data[icAny];
00872 } icUInt32Array;
00873
00875 typedef struct {
00876 icInt32Number data[icAny];
00877 } icInt32Array;
00878
00880 typedef struct {
00881 icUInt64Number data[icAny];
00882 } icUInt64Array;
00883
00885 typedef struct {
00886 icInt64Number data[icAny];
00887 } icInt64Array;
00888
00890 typedef struct {
00891 icU16Fixed16Number data[icAny];
00892 } icU16Fixed16Array;
00893
00895 typedef struct {
00896 icS15Fixed16Number data[icAny];
00897 } icS15Fixed16Array;
00898
00900 typedef struct {
00901 icUInt16Number year;
00902 icUInt16Number month;
00903 icUInt16Number day;
00904 icUInt16Number hours;
00905 icUInt16Number minutes;
00906 icUInt16Number seconds;
00907 } icDateTimeNumber;
00908
00910 typedef struct {
00911 icS15Fixed16Number X;
00912 icS15Fixed16Number Y;
00913 icS15Fixed16Number Z;
00914 } icXYZNumber;
00915
00917 typedef struct {
00918 icXYZNumber data[icAny];
00919 } icXYZArray;
00920
00922 typedef struct {
00923 icU16Fixed16Number x;
00924 icU16Fixed16Number y;
00925 } icChromaticityNumber;
00926
00928 typedef struct {
00929 icUInt16Number deviceCode;
00930 icUInt16Number reserved;
00931 icS15Fixed16Number measurementValue;
00932 } icResponse16Number;
00933
00935 typedef struct {
00936 icUInt32Number offset;
00937 icUInt32Number size;
00938 } icPositionNumber;
00939
00940
00942 typedef struct {
00943 icUInt32Number count;
00944 icUInt16Number data[icAny];
00945
00946
00947
00948
00949 } icCurve;
00950
00952 typedef struct {
00953 icUInt16Number funcType;
00954
00955 icUInt16Number pad;
00956 icS15Fixed16Number gamma;
00957
00958 } icParametricCurve;
00959
00961 typedef struct {
00962 icUInt16Number funcType;
00963
00964 icUInt16Number pad;
00965 icS15Fixed16Number gamma;
00966 icS15Fixed16Number a;
00967 icS15Fixed16Number b;
00968 icS15Fixed16Number c;
00969 icS15Fixed16Number d;
00970 icS15Fixed16Number e;
00971 icS15Fixed16Number f;
00972 } icParametricCurveFull;
00973
00975 typedef struct {
00976 icUInt32Number dataFlag;
00977 icInt8Number data[icAny];
00978 } icData;
00979
00981 typedef struct {
00982 icUInt8Number inputChan;
00983 icUInt8Number outputChan;
00984 icUInt8Number clutPoints;
00985 icInt8Number pad;
00986 icS15Fixed16Number e00;
00987 icS15Fixed16Number e01;
00988 icS15Fixed16Number e02;
00989 icS15Fixed16Number e10;
00990 icS15Fixed16Number e11;
00991 icS15Fixed16Number e12;
00992 icS15Fixed16Number e20;
00993 icS15Fixed16Number e21;
00994 icS15Fixed16Number e22;
00995 icUInt16Number inputEnt;
00996 icUInt16Number outputEnt;
00997 icUInt16Number data[icAny];
01005 } icLut16;
01006
01008 typedef struct {
01009 icUInt8Number inputChan;
01010 icUInt8Number outputChan;
01011 icUInt8Number clutPoints;
01012 icInt8Number pad;
01013 icS15Fixed16Number e00;
01014 icS15Fixed16Number e01;
01015 icS15Fixed16Number e02;
01016 icS15Fixed16Number e10;
01017 icS15Fixed16Number e11;
01018 icS15Fixed16Number e12;
01019 icS15Fixed16Number e20;
01020 icS15Fixed16Number e21;
01021 icS15Fixed16Number e22;
01022 icUInt8Number data[icAny];
01030 } icLut8;
01031
01033 typedef struct {
01034 icUInt8Number gridPoints[16];
01035 icUInt8Number prec;
01036 icUInt8Number pad1;
01037 icUInt8Number pad2;
01038 icUInt8Number pad3;
01039
01040 } icCLutStruct;
01041
01043 typedef struct {
01044 icUInt8Number inputChan;
01045 icUInt8Number outputChan;
01046 icUInt8Number pad1;
01047 icUInt8Number pad2;
01048 icUInt32Number offsetB;
01049 icUInt32Number offsetMat;
01050 icUInt32Number offsetM;
01051 icUInt32Number offsetC;
01052 icUInt32Number offsetA;
01053
01054 } icLutAtoB;
01055
01057 typedef struct {
01058 icUInt8Number inputChan;
01059 icUInt8Number outputChan;
01060 icUInt8Number pad1;
01061 icUInt8Number pad2;
01062 icUInt32Number offsetB;
01063 icUInt32Number offsetMat;
01064 icUInt32Number offsetM;
01065 icUInt32Number offsetC;
01066 icUInt32Number offsetA;
01067
01068 } icLutBtoA;
01069
01071 typedef struct {
01072 icStandardObserver stdObserver;
01073 icXYZNumber backing;
01074 icMeasurementGeometry geometry;
01075 icMeasurementFlare flare;
01076 icIlluminant illuminant;
01077 } icMeasurement;
01078
01084 typedef struct {
01085 icUInt8Number rootName[32];
01086 icUInt16Number pcsCoords[3];
01087 icUInt16Number deviceCoords[icAny];
01088 } icNamedColor2Entry;
01089
01093 typedef struct {
01094 icUInt32Number vendorFlag;
01095 icUInt32Number count;
01096 icUInt32Number nDeviceCoords;
01097 icInt8Number prefix[32];
01098 icInt8Number suffix[32];
01099 icInt8Number data[icAny];
01132 } icNamedColor2;
01133
01135 typedef struct {
01136 icSignature deviceMfg;
01137 icSignature deviceModel;
01138 icUInt64Number attributes;
01139 icTechnologySignature technology;
01140 icInt8Number data[icAny];
01149 } icDescStruct;
01150
01152 typedef struct {
01153 icUInt32Number count;
01154 icUInt8Number data[icAny];
01155 } icProfileSequenceDesc;
01156
01158 typedef struct {
01159 icUInt32Number count;
01160 icInt8Number data[icAny];
01172 } icTextDescription;
01173
01175 typedef struct {
01176 icS15Fixed16Number frequency;
01177 icS15Fixed16Number angle;
01178 icSpotShape spotShape;
01179 } icScreeningData;
01180
01182 typedef struct {
01183 icUInt32Number screeningFlag;
01184 icUInt32Number channels;
01185 icScreeningData data[icAny];
01186 } icScreening;
01187
01189 typedef struct {
01190 icInt8Number data[icAny];
01191 } icText;
01192
01194 typedef struct {
01195 icUInt32Number count;
01196 icUInt16Number curve[icAny];
01197 } icUcrBgCurve;
01198
01200 typedef struct {
01201 icInt8Number data[icAny];
01211 } icUcrBg;
01212
01214 typedef struct {
01215 icXYZNumber illuminant;
01216 icXYZNumber surround;
01217 icIlluminant stdIluminant;
01218 } icViewingCondition;
01219
01221 typedef struct {
01222 icUInt32Number count;
01223 icInt8Number desc[icAny];
01224 } icCrdInfo;
01225
01227 typedef struct {
01228 icUInt32Number count;
01229 icUInt8Number data[icAny];
01230
01231
01232 } icColorantOrder;
01233
01235 typedef struct {
01236 icInt8Number name[32];
01237 icUInt16Number data[3];
01238 } icColorantTableEntry;
01239
01241 typedef struct {
01242 icUInt32Number count;
01243 icColorantTableEntry entry[icAny];
01244 } icColorantTable;
01245
01246
01247
01254 typedef struct {
01255 icTagTypeSignature sig;
01256 icInt8Number reserved[4];
01257 } icTagBase;
01258
01260 typedef struct {
01261 icTagBase base;
01262 icCurve curve;
01263 } icCurveType;
01264
01266 typedef struct {
01267 icTagBase base;
01268 icParametricCurve curve;
01269 } icParametricCurveType;
01270
01272 typedef struct {
01273 icTagBase base;
01274 icParametricCurveFull curve;
01275 } icParametricCurveFullType;
01276
01278 typedef struct {
01279 icTagBase base;
01280 icData data;
01281 } icDataType;
01282
01284 typedef struct {
01285 icTagBase base;
01286 icDateTimeNumber date;
01287 } icDateTimeType;
01288
01290 typedef struct {
01291 icTagBase base;
01292 icLut16 lut;
01293 } icLut16Type;
01294
01296 typedef struct {
01297 icTagBase base;
01298 icLut8 lut;
01299 } icLut8Type;
01300
01302 typedef struct {
01303 icTagBase base;
01304 icLutAtoB lut;
01305 } icLutAtoBType;
01306
01308 typedef struct {
01309 icTagBase base;
01310 icLutBtoA lut;
01311 } icLutBtoAType;
01312
01314 typedef struct {
01315 icTagBase base;
01316 icMeasurement measurement;
01317 } icMeasurementType;
01318
01324 typedef struct {
01325 icTagBase base;
01326 icNamedColor2 ncolor;
01327 } icNamedColor2Type;
01328
01330 typedef struct {
01331 icTagBase base;
01332 icProfileSequenceDesc desc;
01333 } icProfileSequenceDescType;
01334
01336 typedef struct {
01337 icTagBase base;
01338 icTextDescription desc;
01339 } icTextDescriptionType;
01340
01342 typedef struct {
01343 icTagBase base;
01344 icS15Fixed16Array data;
01345 } icS15Fixed16ArrayType;
01346
01348 typedef struct {
01349 icTagBase base;
01350 icScreening screen;
01351 } icScreeningType;
01352
01354 typedef struct {
01355 icTagBase base;
01356 icSignature signature;
01357 } icSignatureType;
01358
01360 typedef struct {
01361 icTagBase base;
01362 icText data;
01363 } icTextType;
01364
01366 typedef struct {
01367 icTagBase base;
01368 icU16Fixed16Array data;
01369 } icU16Fixed16ArrayType;
01370
01372 typedef struct {
01373 icTagBase base;
01374 icUcrBg data;
01375 } icUcrBgType;
01376
01378 typedef struct {
01379 icTagBase base;
01380 icUInt16Array data;
01381 } icUInt16ArrayType;
01382
01384 typedef struct {
01385 icTagBase base;
01386 icUInt32Array data;
01387 } icUInt32ArrayType;
01388
01390 typedef struct {
01391 icTagBase base;
01392 icUInt64Array data;
01393 } icUInt64ArrayType;
01394
01396 typedef struct {
01397 icTagBase base;
01398 icUInt8Array data;
01399 } icUInt8ArrayType;
01400
01402 typedef struct {
01403 icTagBase base;
01404 icViewingCondition view;
01405 } icViewingConditionType;
01406
01408 typedef struct {
01409 icTagBase base;
01410 icXYZArray data;
01411 } icXYZType;
01412
01417 typedef struct {
01418 icTagBase base;
01419 icCrdInfo info;
01420 }icCrdInfoType;
01421
01422
01423
01424
01425
01426
01428 typedef struct {
01429 icTagBase base;
01430 icColorantOrder order;
01431 }icColorantOrderType;
01432
01434 typedef struct {
01435 icTagBase base;
01436 icColorantTable table;
01437 }icColorantTableType;
01438
01440 typedef struct {
01441 icTagBase base;
01442 icS15Fixed16Number matrix[9];
01443 }icChromaticAdaptationType;
01444
01446 typedef struct {
01447 icUInt16Number languageCode;
01448 icUInt16Number countryCode;
01449 icUInt32Number len;
01450 icUInt32Number off;
01451 }icMultiLocalizedUnicodeEntry;
01452
01454 typedef struct {
01455 icTagBase base;
01456 icUInt32Number count;
01457 icUInt32Number size;
01458 }icMultiLocalizedUnicodeType;
01459
01460
01461
01467 typedef struct {
01468 icTagSignature sig;
01469 icUInt32Number offset;
01470
01471
01472 icUInt32Number size;
01473 } icTag;
01474
01476 typedef struct {
01477 icUInt32Number count;
01478 icTag tags[icAny];
01479 } icTagList;
01480
01482 typedef union {
01483 icUInt8Number ID8[16];
01484 icUInt16Number ID16[8];
01485 icUInt32Number ID32[4];
01486 } icProfileID;
01487
01489 typedef struct {
01490 icUInt32Number size;
01491 icSignature cmmId;
01492 icUInt32Number version;
01493 icProfileClassSignature deviceClass;
01494 icColorSpaceSignature colorSpace;
01495 icColorSpaceSignature pcs;
01496 icDateTimeNumber date;
01497 icSignature magic;
01498 icPlatformSignature platform;
01499 icUInt32Number flags;
01500 icSignature manufacturer;
01501 icUInt32Number model;
01502 icUInt64Number attributes;
01503 icUInt32Number renderingIntent;
01504 icXYZNumber illuminant;
01505 icSignature creator;
01506 icProfileID profileID;
01507 icInt8Number reserved[28];
01508 } icHeader;
01509
01514 typedef struct {
01515 icHeader header;
01516 icTagList tagList;
01517
01518
01519
01520
01521
01522
01523
01524
01525
01526
01527 } icProfile;
01528
01529
01530
01531
01532
01533
01534
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544
01545
01546
01547
01548
01549
01550
01551
01552
01553
01554
01555
01556
01557
01558 #endif
01559
01560
01561
01562