Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
icProfileHeader.h
Go to the documentation of this file.
1/** @file
2 File: icProfileHeader.h
3
4 Contains: ICC profile definitions and structures
5
6 Copyright: (c) see ICC Software License
7
8 * <b>
9 * This version of the header file corresponds to the profile
10 * specification version 5.1 as defined in ICC Specificion ICC.1:2004-04.
11 *
12 * This version of the header file corresponds to the profile
13 * specification version 4.3 as defined in ICC Specificion ICC.1:2010.
14 *
15 * Some definitions only provided by version 2.x profiles are also included.
16 *
17 * This header file should not be considered as a replacement for the ICC
18 * profile specification. The ICC profile specification should always be
19 * considered the ULTIMATE authority related to the specifiation for
20 * contents in ICC profile file. Conflicts between this header file
21 * and the ICC profile specification (if they exist) should be deferred
22 * to the ICC profile specification.
23 * </b>
24 *
25 * All header file entries are pre-fixed with "ic" to help
26 * avoid name space collisions. Signatures are pre-fixed with
27 * icSig.
28 *
29 * Note: This header assumes that int is at least a 32 bit quantity
30 *
31 * The structures defined in this header file were created to
32 * represent a description of an ICC profile on disk. Rather
33 * than use pointers a technique is used where a single byte array
34 * was placed at the end of each structure. This allows us in "C"
35 * to extend the structure by allocating more data than is needed
36 * to account for variable length structures.
37 *
38 * This also ensures that data following is allocated
39 * contiguously and makes it easier to write and read data from
40 * the file.
41 *
42 * For example to allocate space for a 256 count length UCR
43 * and BG array, and fill the allocated data. Note strlen + 1
44 * to remember NULL terminator.
45 *
46 icUcrBgCurve *ucrCurve, *bgCurve;
47 int ucr_nbytes, bg_nbytes, string_bytes;
48 icUcrBg *ucrBgWrite;
49 char ucr_string[100], *ucr_char;
50
51 strcpy(ucr_string, "Example ucrBG curves");
52 ucr_nbytes = sizeof(icUInt32Number) +
53 (UCR_CURVE_SIZE * sizeof(icUInt16Number));
54 bg_nbytes = sizeof(icUInt32Number) +
55 (BG_CURVE_SIZE * sizeof(icUInt16Number));
56 string_bytes = strlen(ucr_string) + 1;
57
58 ucrBgWrite = (icUcrBg *)malloc(
59 (ucr_nbytes + bg_nbytes + string_bytes));
60
61ucrCurve = (icUcrBgCurve *)ucrBgWrite->data;
62ucrCurve->count = UCR_CURVE_SIZE;
63for (i=0; i<ucrCurve->count; i++)
64ucrCurve->curve[i] = (icUInt16Number)i;
65
66 bgCurve = (icUcrBgCurve *)((char *)ucrCurve + ucr_nbytes);
67bgCurve->count = BG_CURVE_SIZE;
68for (i=0; i<bgCurve->count; i++)
69bgCurve->curve[i] = 255 - (icUInt16Number)i;
70
71 ucr_char = (char *)((char *)bgCurve + bg_nbytes);
72 memcpy(ucr_char, ucr_string, string_bytes);
73
74 * Many of the structures contain variable length arrays. This
75 * is represented by the use of the convention.
76 *
77 * type data[icAny];
78 */
79
80/*
81 *
82 *
83* Copyright (c) 2003-2012 The International Color Consortium.
84 *
85 *
86 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
87 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
88 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
89 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
90 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
91 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
92 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
93 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
94 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
95 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
96 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
97 * SUCH DAMAGE.
98 * ====================================================================
99 *
100 * This software consists of voluntary contributions made by many
101 * individuals on behalf of the The International Color Consortium.
102 *
103 *
104 * Membership in the ICC is encouraged when this software is used for
105 * commercial purposes.
106 *
107 *
108 * For more information on The International Color Consortium, please
109 * see <http://www.color.org/>.
110 *
111 *
112 */
113
114
115/*****************************************************************
116 Copyright (c) 2002 Heidelberger Druckmaschinen AG
117
118 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
119 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
120 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
121 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
122 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
123 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
124 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
125 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
126 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
127 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
128 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
129 * SUCH DAMAGE.
130******************************************************************/
131
132/*****************************************************************
133 Copyright (c) 1994 SunSoft, Inc.
134
135 Rights Reserved
136
137Permission is hereby granted, free of charge, to any person
138obtaining a copy of this software and associated documentation
139files (the "Software"), to deal in the Software without restrict-
140ion, including without limitation the rights to use, copy, modify,
141merge, publish distribute, sublicense, and/or sell copies of the
142Software, and to permit persons to whom the Software is furnished
143to do so, subject to the following conditions:
144
145The above copyright notice and this permission notice shall be
146included in all copies or substantial portions of the Software.
147
148THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
149EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
150OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
151INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT
152COMPANY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
153WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
154FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
155OTHER DEALINGS IN THE SOFTWARE.
156
157Except as contained in this notice, the name of SunSoft, Inc.
158shall not be used in advertising or otherwise to promote the
159sale, use or other dealings in this Software without written
160authorization from SunSoft Inc.
161******************************************************************/
162
163
164
165/* Header file guard bands */
166#ifndef icPROFILEHEADER_H
167#define icPROFILEHEADER_H
168
169#if !defined(ICCCONFIG_h)
170 #error Include IccProfLibConf.h before this file
171#endif
172
173/* In order for structures to work it is important to ensure that
174 * the structure packing is set to 1. On many compilers this
175 * can be accomplished using #pragma pack(1). Define the macro
176 * ICSETBYTEPACKING to enable the following.*/
177#ifdef ICSETBYTEPACKING
178#pragma pack(1)
179#endif
180
181/*------------------------------------------------------------------------*/
182
183/**
184 * Defines used in the specification
185 */
186#define icMagicNumber 0x61637370 /* 'acsp' */
187#define icVersionNumber 0x02000000 /* 2.0, BCD */
188#define icVersionNumberV2_1 0x02100000 /* 2.1, BCD */
189#define icVersionNumberV4 0x04000000 /* 4.0, BCD */
190#define icVersionNumberV4_2 0x04200000 /* 4.2, BCD */
191#define icVersionNumberV4_3 0x04300000 /* 4.3, BCD */
192#define icVersionNumberV4_4 0x04400000 /* 4.3, BCD */
193#define icVersionNumberV5 0x05000000 /* 5.0, BCD */
194#define icVersionNumberV5_1 0x05100000 /* 5.1, BCD */
195
196/** Screening Encodings */
197#define icPrtrDefaultScreensFalse 0x00000000 /* Bit position 0 */
198#define icPrtrDefaultScreensTrue 0x00000001 /* Bit position 0 */
199#define icLinesPerInch 0x00000002 /* Bit position 1 */
200#define icLinesPerCm 0x00000000 /* Bit position 1 */
201
202/**
203 * Device attributes, currently defined values correspond
204 * to the low 4 bytes of the 8 byte attribute quantity, see
205 * the header for their location.
206 */
207#define icReflective 0x00000000 /* Bit position 0 */
208#define icTransparency 0x00000001 /* Bit position 0 */
209#define icGlossy 0x00000000 /* Bit position 1 */
210#define icMatte 0x00000002 /* Bit position 1 */
211#define icMediaPositive 0x00000000 /* Bit position 2 */
212#define icMediaNegative 0x00000004 /* Bit position 2 */
213#define icMediaColour 0x00000000 /* Bit position 3 */
214#define icMediaBlackAndWhite 0x00000008 /* Bit position 3 */
215
216/**
217 * Profile header flags, the low 16 bits are reserved for consortium
218 * use.
219 */
220#define icEmbeddedProfileFalse 0x00000000 /* Bit position 0 */
221#define icEmbeddedProfileTrue 0x00000001 /* Bit position 0 */
222#define icUseAnywhere 0x00000000 /* Bit position 1 */
223#define icUseWithEmbeddedDataOnly 0x00000002 /* Bit position 1 */
224#define icMCSNeedsSubsetFalse 0x00000000 /* Bit Position 2 */
225#define icMCSNeedsSubsetTrue 0x00000004 /* Bit Position 2 */
226#define icStandardRangePCS 0x00000000 /* Bit Position 3 */
227#define icExtendedRangePCS 0x00000008 /* Bit Position 3 */
228
229/**
230 * Define used to indicate that this is a variable length array
231 */
232#define icAny 1
233
234/**
235 * Number definitions
236 *
237 * NOTE:
238 * Integer definitions vary from compiler to compiler. Rather than
239 * provide complex checking for compiler and system, default implementations
240 * are provided with the ability to redefine actual meaning based upon
241 * macros. This can be accomplished in a separate header file that first defines
242 * the macros and then includes this header, or by defining macro values on
243 * a project level.
244 */
245
246/** Unsigned integer numbers */
247#ifdef ICUINT8TYPE
248typedef ICUINT8TYPE icUInt8Number;
249#else
250typedef unsigned char icUInt8Number;
251#endif
252
253#ifdef ICUINT16TYPE
254typedef ICUINT16TYPE icUInt16Number;
255#else
256typedef unsigned short icUInt16Number;
257#endif
258
259#ifdef ICUINT32TYPE
261#else
262typedef unsigned long icUInt32Number;
263#endif
264
265#ifdef ICUINT64TYPE
267#else
269#endif
270
272
273
274
275/** Signed numbers */
276#ifdef ICINT8TYPE
277typedef ICINT8TYPE icInt8Number;
278#else
279typedef char icInt8Number;
280#endif
281
282#ifdef ICINT16TYPE
283typedef ICINT16TYPE icInt16Number;
284#else
285typedef short icInt16Number;
286#endif
287
288#ifdef ICINT32TYPE
290#else
291typedef long icInt32Number;
292#endif
293
294#ifdef ICINT64TYPE
296#else
298#endif
299
300
301/** Fixed numbers */
304
305
306/** IEEE float storage numbers */
307#ifdef ICHALFFLOATTYPE
309#else
311#endif
312
313typedef float icFloat32Number;
314typedef double icFloat64Number;
315
316/** Useful macros for defining Curve Segment breakpoints **/
317#define icMaxFloat32Number 3.402823466e+38F
318#define icMinFloat32Number -3.402823466e+38F
319
320/** 16-bit unicode characters **/
322
323#define icDataTypeMask 0x0000ffff
324#define icCompressedData 0x00010000
325
326/*------------------------------------------------------------------------*/
327
336
337
338/**
339 * public tags and sizes
340 */
341typedef enum {
342 icSigAToB0Tag = 0x41324230, /* 'A2B0' */ §9.2.1
343 icSigAToB1Tag = 0x41324231, /* 'A2B1' */ §9.2.2
344 icSigAToB2Tag = 0x41324232, /* 'A2B2' */ §9.2.3
345 icSigAToB3Tag = 0x41324233, /* 'A2B3' */ §9.2.4
346 icSigAToM0Tag = 0x41324d30, /* 'A2M0' */ §9.2.5
347 icSigBlueColorantTag = 0x6258595A, /* 'bXYZ' */
348 icSigBlueMatrixColumnTag = 0x6258595A, /* 'bXYZ' */
349 icSigBlueTRCTag = 0x62545243, /* 'bTRC' */
350 icSigBrdfColorimetricParameter0Tag = 0x62637030, /* 'bcp0' */ §9.2.6
351 icSigBrdfColorimetricParameter1Tag = 0x62637031, /* 'bcp1' */ §9.2.7
352 icSigBrdfColorimetricParameter2Tag = 0x62637032, /* 'bcp2' */ §9.2.8
353 icSigBrdfColorimetricParameter3Tag = 0x62637033, /* 'bcp3' */ §9.2.9
354 icSigBrdfSpectralParameter0Tag = 0x62737030, /* 'bsp0' */ §9.2.10
355 icSigBrdfSpectralParameter1Tag = 0x62737031, /* 'bsp1' */ §9.2.11
356 icSigBrdfSpectralParameter2Tag = 0x62737032, /* 'bsp2' */ §9.2.12
357 icSigBrdfSpectralParameter3Tag = 0x62737033, /* 'bsp3' */ §9.2.13
358 icSigBRDFAToB0Tag = 0x62414230, /* 'bAB0' */ §9.2.14
359 icSigBRDFAToB1Tag = 0x62414231, /* 'bAB1' */ §9.2.15
360 icSigBRDFAToB2Tag = 0x62414232, /* 'bAB2' */ §9.2.16
361 icSigBRDFAToB3Tag = 0x62414233, /* 'bAB3' */ §9.2.17
363 icSigBRDFDToB1Tag = 0x62444231, /* 'bDB1' */
364 icSigBRDFDToB2Tag = 0x62444232, /* 'bDB2' */
365 icSigBRDFDToB3Tag = 0x62444233, /* 'bDB3' */
366 icSigBRDFMToB0Tag = 0x624D4230, /* 'bMB0' */
367 icSigBRDFMToB1Tag = 0x624D4231, /* 'bMB1' */
368 icSigBRDFMToB2Tag = 0x624D4232, /* 'bMB2' */
369 icSigBRDFMToB3Tag = 0x624D4233, /* 'bMB3' */
370 icSigBRDFMToS0Tag = 0x624D5330, /* 'bMS0' */
371 icSigBRDFMToS1Tag = 0x624D5331, /* 'bMS1' */
372 icSigBRDFMToS2Tag = 0x624D5332, /* 'bMS2' */
373 icSigBRDFMToS3Tag = 0x624D5333, /* 'bMS3' */
374 icSigBToA0Tag = 0x42324130, /* 'B2A0' */
375 icSigBToA1Tag = 0x42324131, /* 'B2A1' */
376 icSigBToA2Tag = 0x42324132, /* 'B2A2' */
377 icSigBToA3Tag = 0x42324133, /* 'B2A3' */
378 icSigCalibrationDateTimeTag = 0x63616C74, /* 'calt' */
379 icSigCharTargetTag = 0x74617267, /* 'targ' */
380 icSigChromaticAdaptationTag = 0x63686164, /* 'chad' */
381 icSigChromaticityTag = 0x6368726D, /* 'chrm' */
382 icSigCicpTag = 0x63696370, /* 'cicp' */
383 icSigColorEncodingParamsTag = 0x63657074, /* 'cept' */
384 icSigColorSpaceNameTag = 0x63736e6d, /* 'csnm' */
385 icSigColorantInfoTag = 0x636c696e, /* 'clin' */
386 icSigColorantInfoOutTag = 0x636c696f, /* 'clio' */
387 icSigColorantOrderTag = 0x636C726F, /* 'clro' */
388 icSigColorantOrderOutTag = 0x636c6f6f, /* 'cloo' */
389 icSigColorantTableTag = 0x636C7274, /* 'clrt' */
390 icSigColorantTableOutTag = 0x636C6F74, /* 'clot' */
391 icSigColorimetricIntentImageStateTag = 0x63696973, /* 'ciis' */
392 icSigCopyrightTag = 0x63707274, /* 'cprt' */
393 icSigCrdInfoTag = 0x63726469, /* 'crdi' Removed in V4 */
394 icSigCustomToStandardPccTag = 0x63327370, /* 'c2sp' */
395 icSigCxFTag = 0x43784620, /* 'CxF ' */
396 icSigDataTag = 0x64617461, /* 'data' Removed in V4 */
397 icSigDateTimeTag = 0x6474696D, /* 'dtim' Removed in V4 */
398#if 0 // not documented!
399 icSigDeviceMediaWhitePointTag = 0x646d7770, /* 'dmwp' */
400#endif
401 icSigDeviceMfgDescTag = 0x646D6E64, /* 'dmnd' */
402 icSigDeviceModelDescTag = 0x646D6464, /* 'dmdd' */
403 icSigDeviceSettingsTag = 0x64657673, /* 'devs' Removed in V4 */
404 icSigDToB0Tag = 0x44324230, /* 'D2B0' */
405 icSigDToB1Tag = 0x44324231, /* 'D2B1' */
406 icSigDToB2Tag = 0x44324232, /* 'D2B2' */
407 icSigDToB3Tag = 0x44324233, /* 'D2B3' */
408 icSigBToD0Tag = 0x42324430, /* 'B2D0' */
409 icSigBToD1Tag = 0x42324431, /* 'B2D1' */
410 icSigBToD2Tag = 0x42324432, /* 'B2D2' */
411 icSigBToD3Tag = 0x42324433, /* 'B2D3' */
412 icSigGamutTag = 0x67616D74, /* 'gamt' */
413 icSigGamutBoundaryDescription0Tag = 0x67626430, /* 'gbd0' */
414 icSigGamutBoundaryDescription1Tag = 0x67626431, /* 'gbd1' */
415 icSigGamutBoundaryDescription2Tag = 0x67626432, /* 'gbd2' */
416 icSigGamutBoundaryDescription3Tag = 0x67626433, /* 'gbd3' */
417 icSigHToS0Tag = 0x48325330, /* 'H2S0' */
418 icSigHToS1Tag = 0x48325331, /* 'H2S1' */
419 icSigHToS2Tag = 0x48325332, /* 'H2S2' */
420 icSigHToS3Tag = 0x48325333, /* 'H2S3' */
421 icSigGrayTRCTag = 0x6b545243, /* 'kTRC' */
422 icSigGreenColorantTag = 0x6758595A, /* 'gXYZ' */
423 icSigGreenMatrixColumnTag = 0x6758595A, /* 'gXYZ' */
424 icSigGreenTRCTag = 0x67545243, /* 'gTRC' */
425 icSigLuminanceTag = 0x6C756d69, /* 'lumi' */
426 icSigMaterialDefaultValuesTag = 0x6D647620, /* 'mdv ' */
427 icSigMaterialTypeArrayTag = 0x6d637461, /* 'mcta' */
428 icSigMToA0Tag = 0x4d324130, /* 'M2A0' */
429 icSigMToB0Tag = 0x4d324230, /* 'M2B0' */
430 icSigMToB1Tag = 0x4d324231, /* 'M2B1' */
431 icSigMToB2Tag = 0x4d324232, /* 'M2B2' */
432 icSigMToB3Tag = 0x4d324233, /* 'M2B3' */
433 icSigMToS0Tag = 0x4d325330, /* 'M2S0' */
434 icSigMToS1Tag = 0x4d325331, /* 'M2S1' */
435 icSigMToS2Tag = 0x4d325332, /* 'M2S2' */
436 icSigMToS3Tag = 0x4d325333, /* 'M2S3' */
437 icSigMeasurementTag = 0x6D656173, /* 'meas' */
438 icSigMediaBlackPointTag = 0x626B7074, /* 'bkpt' */
439 icSigMediaWhitePointTag = 0x77747074, /* 'wtpt' */
440 icSigMetaDataTag = 0x6D657461, /* 'meta' */
441#if 0
442 icSigNamedColorTag = 0x6E636f6C, /* 'ncol' OBSOLETE, use ncl2 */
443#endif
444 icSigNamedColorTag = 0x6e6d636C, /* 'nmcl' use for V5 */
445 icSigNamedColor2Tag = 0x6E636C32, /* 'ncl2' */
446 icSigOutputResponseTag = 0x72657370, /* 'resp' */
447 icSigPerceptualRenderingIntentGamutTag = 0x72696730, /* 'rig0' */
448 icSigPreview0Tag = 0x70726530, /* 'pre0' */
449 icSigPreview1Tag = 0x70726531, /* 'pre1' */
450 icSigPreview2Tag = 0x70726532, /* 'pre2' */
451 icSigPrintConditionTag = 0x7074636e, /* 'ptcn' */
452 icSigProfileDescriptionTag = 0x64657363, /* 'desc' */
453 icSigProfileSequenceDescTag = 0x70736571, /* 'pseq' */
454 icSigProfileSequceIdTag = 0x70736964, /* 'psid' */
455 icSigPs2CRD0Tag = 0x70736430, /* 'psd0' Removed in V4 */
456 icSigPs2CRD1Tag = 0x70736431, /* 'psd1' Removed in V4 */
457 icSigPs2CRD2Tag = 0x70736432, /* 'psd2' Removed in V4 */
458 icSigPs2CRD3Tag = 0x70736433, /* 'psd3' Removed in V4 */
459 icSigPs2CSATag = 0x70733273, /* 'ps2s' Removed in V4 */
460 icSigPs2RenderingIntentTag = 0x70733269, /* 'ps2i' Removed in V4 */
461 icSigRedColorantTag = 0x7258595A, /* 'rXYZ' */
462 icSigRedMatrixColumnTag = 0x7258595A, /* 'rXYZ' */
463 icSigRedTRCTag = 0x72545243, /* 'rTRC' */
464 icSigReferenceNameTag = 0x72666e6d, /* 'rfnm' */
465 icSigSaturationRenderingIntentGamutTag = 0x72696732, /* 'rig2' */
466 icSigScreeningDescTag = 0x73637264, /* 'scrd' Removed in V4 */
467 icSigScreeningTag = 0x7363726E, /* 'scrn' Removed in V4 */
468 icSigSpectralDataInfoTag = 0x7364696e, /* 'sdin' */
469 icSigSpectralWhitePointTag = 0x73777074, /* 'swpt' */
470 icSigSpectralViewingConditionsTag = 0x7376636e, /* 'svcn' */
471 icSigStandardToCustomPccTag = 0x73326370, /* 's2cp' */
472 icSigSurfaceMapTag = 0x736D6170, /* 'smap' */
473 icSigTechnologyTag = 0x74656368, /* 'tech' */
474 icSigUcrBgTag = 0x62666420, /* 'bfd ' Removed in V4 */
475 icSigViewingCondDescTag = 0x76756564, /* 'vued' */
476 icSigViewingConditionsTag = 0x76696577, /* 'view' */
477
478/* Private tags*/
479 icSigEmbeddedV5ProfileTag = 0x49434335, /* 'ICC5' */
481
482/** Convenience Enum Definitions - Not defined in ICC specification*/
483#define icSigUnknownTag ((icTagSignature) 0x3f3f3f3f) /* '????' */
484#define icMaxEnumTag ((icTagSignature) 0xFFFFFFFF)
485
486
487
488/**
489 * technology signature descriptions
490 */
491typedef enum {
492 icSigDigitalCamera = 0x6463616D, /* 'dcam' */
493 icSigFilmScanner = 0x6673636E, /* 'fscn' */
494 icSigReflectiveScanner = 0x7273636E, /* 'rscn' */
495 icSigInkJetPrinter = 0x696A6574, /* 'ijet' */
496 icSigThermalWaxPrinter = 0x74776178, /* 'twax' */
497 icSigElectrophotographicPrinter = 0x6570686F, /* 'epho' */
498 icSigElectrostaticPrinter = 0x65737461, /* 'esta' */
499 icSigDyeSublimationPrinter = 0x64737562, /* 'dsub' */
500 icSigPhotographicPaperPrinter = 0x7270686F, /* 'rpho' */
501 icSigFilmWriter = 0x6670726E, /* 'fprn' */
502 icSigVideoMonitor = 0x7669646D, /* 'vidm' */
503 icSigVideoCamera = 0x76696463, /* 'vidc' */
504 icSigProjectionTelevision = 0x706A7476, /* 'pjtv' */
505 icSigCRTDisplay = 0x43525420, /* 'CRT ' */
506 icSigPMDisplay = 0x504D4420, /* 'PMD ' */
507 icSigAMDisplay = 0x414D4420, /* 'AMD ' */
508 icSigPhotoCD = 0x4B504344, /* 'KPCD' */
509 icSigPhotoImageSetter = 0x696D6773, /* 'imgs' */
510 icSigGravure = 0x67726176, /* 'grav' */
511 icSigOffsetLithography = 0x6F666673, /* 'offs' */
512 icSigSilkscreen = 0x73696C6B, /* 'silk' */
513 icSigFlexography = 0x666C6578, /* 'flex' */
514 icSigMotionPictureFilmScanner = 0x6D706673, /* 'mpfs' */
515 icSigMotionPictureFilmRecorder = 0x6D706672, /* 'mpfr' */
516 icSigDigitalMotionPictureCamera = 0x646D7063, /* 'dmpc' */
517 icSigDigitalCinemaProjector = 0x64636A70, /* 'dcpj' */
519
520/** Convenience Enum Definition - Not defined in ICC specification*/
521#define icMaxEnumTechnology ((icTechnologySignature) 0xFFFFFFFF)
522
523/**
524 * type signatures
525 */
526typedef enum {
527 icSigUndefinedType = 0x00000000,
528 icSigChromaticityType = 0x6368726D, /* 'chrm' */
529 icSigCicpType = 0x63696370, /* 'cicp' */
530 icSigColorantOrderType = 0x636C726F, /* 'clro' */
531 icSigColorantTableType = 0x636C7274, /* 'clrt' */
532 icSigCrdInfoType = 0x63726469, /* 'crdi' Removed in V4 */
533 icSigCurveType = 0x63757276, /* 'curv' */
534 icSigDataType = 0x64617461, /* 'data' */
535 icSigDictType = 0x64696374, /* 'dict' */
536 icSigDateTimeType = 0x6474696D, /* 'dtim' */
537 icSigDeviceSettingsType = 0x64657673, /* 'devs' Removed in V4 */
538 icSigEmbeddedHeightImageType = 0x6568696D, /* 'ehim' */
539 icSigEmbeddedNormalImageType = 0x656e696d, /* 'enim' */
540 icSigFloat16ArrayType = 0x666c3136, /* 'fl16' */
541 icSigFloat32ArrayType = 0x666c3332, /* 'fl32' */
542 icSigFloat64ArrayType = 0x666c3634, /* 'fl64' */
543 icSigGamutBoundaryDescType = 0x67626420, /* 'gbd ' */
544 icSigLut16Type = 0x6d667432, /* 'mft2' */
545 icSigLut8Type = 0x6d667431, /* 'mft1' */
546 icSigLutAtoBType = 0x6d414220, /* 'mAB ' */
547 icSigLutBtoAType = 0x6d424120, /* 'mBA ' */
548 icSigMeasurementType = 0x6D656173, /* 'meas' */
549 icSigMultiLocalizedUnicodeType = 0x6D6C7563, /* 'mluc' */
550 icSigMultiProcessElementType = 0x6D706574, /* 'mpet' */
551 icSigNamedColor2Type = 0x6E636C32, /* 'ncl2' use v2-v4*/
552 icSigParametricCurveType = 0x70617261, /* 'para' */
553 icSigProfileSequenceDescType = 0x70736571, /* 'pseq' */
554 icSigProfileSequceIdType = 0x70736964, /* 'psid' */
555 icSigResponseCurveSet16Type = 0x72637332, /* 'rcs2' */
556 icSigS15Fixed16ArrayType = 0x73663332, /* 'sf32' */
557 icSigScreeningType = 0x7363726E, /* 'scrn' Removed in V4 */
558 icSigSegmentedCurveType = 0x63757266, /* 'curf' */
559 icSigSignatureType = 0x73696720, /* 'sig ' */
560 icSigSparseMatrixArrayType = 0x736D6174, /* 'smat' */
561 icSigSpectralViewingConditionsType = 0x7376636e, /* 'svcn' */
562 icSigSpectralDataInfoType = 0x7364696e, /* 'sdin' */
563 icSigTagArrayType = 0x74617279, /* 'tary' */
564 icSigTagStructType = 0x74737472, /* 'tstr' */
565 icSigTextType = 0x74657874, /* 'text' */
566 icSigTextDescriptionType = 0x64657363, /* 'desc' Removed in V4 */
567 icSigU16Fixed16ArrayType = 0x75663332, /* 'uf32' */
568 icSigUcrBgType = 0x62666420, /* 'bfd ' Removed in V4 */
569 icSigUInt16ArrayType = 0x75693136, /* 'ui16' */
570 icSigUInt32ArrayType = 0x75693332, /* 'ui32' */
571 icSigUInt64ArrayType = 0x75693634, /* 'ui64' */
572 icSigUInt8ArrayType = 0x75693038, /* 'ui08' */
573 icSigViewingConditionsType = 0x76696577, /* 'view' */
574 icSigUtf8TextType = 0x75746638, /* 'utf8' */
575 icSigUtf16TextType = 0x75743136, /* 'ut16' */
576 icSigXYZType = 0x58595A20, /* 'XYZ ' */
577 icSigXYZArrayType = 0x58595A20, /* 'XYZ ' */
578 icSigZipUtf8TextType = 0x7a757438, /* 'zut8' */
579#if defined(XRITE_ADDITIONS)
580 icSigZipXmlType_XRITE = 0x5a584d4c, /* 'ZXML' - X-Rite's uppercase version of 'zxml' */
581#endif
582 icSigZipXmlType = 0x7a786d6c, /* 'zxml' */
583
584/*Private tag types*/
585 icSigEmbeddedProfileType = 0x49434370, /* 'ICCp' */
586 icSigZipXMLType = 0x5a584d4c, /* 'ZXML' used by X-rite for CxF tags*/
587
589
590/** Convenience Enum Definitions - Not defined in ICC specification*/
591#define icSigUnknownType ((icTagTypeSignature) 0x3f3f3f3f) /* '????' */
592#define icMaxEnumType ((icTagTypeSignature) 0xFFFFFFFF)
593
594
595/**
596 * Tag Structure type signatures
597 */
598typedef enum {
599 icSigBRDFStruct = 0x62726466, /* 'brdf' */
600 icSigColorantInfoStruct = 0x63696e66, /* 'cinf' */
601 icSigColorEncodingParamsSruct = 0x63657074, /* 'cept' */
602 icSigMeasurementInfoStruct = 0x6d656173, /* 'meas' */
603 icSigNamedColorStruct = 0x6e6d636c, /* 'nmcl' */
604 icSigProfileInfoStruct = 0x70696e66, /* 'pinf' */
605 icSigTintZeroStruct = 0x746e7430, /* 'tnt0' */
608
609/** Convenience Enum Definitions - Not defined in ICC specification*/
610#define icSigUnknownStruct ((icStructSignature) 0x3f3f3f3f) /* '????' */
611#define icMaxEnumStruct ((icStructSignature) 0xFFFFFFFF)
612
613/**
614 * Tag Array type signatures
615 */
616typedef enum {
618 icSigNamedColorArray = 0x6e6d636c, /* 'nmcl' */
619 icSigColorantInfoArray = 0x63696e66, /* 'cinf' */
620 icSigUtf8TextTypeArray = 0x75746638, /* 'utf8' */
622
623/** Convenience Enum Definitions - Not defined in ICC specification*/
624#define icSigUnknownArray ((icArraySignature) 0x3f3f3f3f) /* '????' */
625#define icMaxEnumArray ((icArraySignature) 0xFFFFFFFF)
626
627
628/************************************************************************
629 * CMM environment variable signatures
630 ************************************************************************/
631typedef enum {
632 //Floating point constant operation
633 icSigTrueVar = 0x74727565, /* 'true' */
634 icSigNotDefVar = 0x6e646566, /* 'ndef' */
636
637
638/**
639 * Multi-Processing Element type signatures
640 */
641typedef enum {
642 //DMP Proposal 1.0 elements
643 icSigCurveSetElemType = 0x63767374, /* 'cvst' */
644 icSigMatrixElemType = 0x6D617466, /* 'matf' */
645 icSigCLutElemType = 0x636C7574, /* 'clut' */
646 icSigBAcsElemType = 0x62414353, /* 'bACS' */
647 icSigEAcsElemType = 0x65414353, /* 'eACS' */
648 // V5 elements
649 icSigCalculatorElemType = 0x63616c63, /* 'calc' */
650 icSigExtCLutElemType = 0x78636c74, /* 'xclt' */
651 icSigXYZToJabElemType = 0x58746f4a, /* 'XtoJ' */
652 icSigJabToXYZElemType = 0x4a746f58, /* 'JtoX' */
653 icSigSparseMatrixElemType = 0x736d6574, /* 'smet' */
654 icSigTintArrayElemType = 0x74696e74, /* 'tint' */
655
656 // V5.1 elements
657 icSigToneMapElemType = 0x746d6170, /* 'tmap' */
658
659 // V5 spectral elements
660 icSigEmissionMatrixElemType = 0x656d7478, /* 'emtx' */
661 icSigInvEmissionMatrixElemType = 0x69656d78, /* 'iemx' */
662 icSigEmissionCLUTElemType = 0x65636c74, /* 'eclt' */
663 icSigReflectanceCLUTElemType = 0x72636c74, /* 'rclt' */
664 icSigEmissionObserverElemType = 0x656f6273, /* 'eobs' */
665 icSigReflectanceObserverElemType = 0x726f6273, /* 'robs' */
667/** Convenience Enum Definitions - Not defined in proposal*/
668#define icSigUnknownElemType ((icElemTypeSignature) 0x3f3f3f3f) /* '????' */
669#define icMaxEnumElemType ((icElemTypeSignature) 0xFFFFFFFF)
670
671/*******CIccTagStructure member signatures********/
672
673/**
674* BRDFStructure (icSigBrdfStruct) Member Tag signatures
675*/
676typedef enum {
677 icSigBrdfTypeMbr = 0x74797065, /* 'type' */
678 icSigBrdfFunctionMbr = 0x66756e63, /* 'func' */
679 icSigBrdfParamsPerChannelMbr = 0x6e756d70, /* 'nump' */
680 icSigBrdfTransformMbr = 0x7866726d, /* 'xfrm' */
681 icSigBrdfLightTransformMbr = 0x6c747866, /* 'ltxf' */
682 icSigBrdfOutputTransformMbr = 0x6f757478, /* 'outx' */ /* Note: converts the output of the BRDF model to PCS */
684/** Convenience Enum Definitions - Not defined in proposal*/
685#define icSigUnknownBrdfMember ((icBrdfMemberSignature) 0x3f3f3f3f) /* '????' */
686#define icMaxBrdfMember ((icBrdfMemberSignature) 0xFFFFFFFF)
687
688/**
689 * BRDF type signatures
690 */
691typedef enum {
692 icSigBrdfTypeBlinnPhongMono = 0x42506830 /* 'BPh0' */,
693 icSigBrdfTypeBlinnPhongColor = 0x42506831 /* 'BPh1' */,
694 icSigBrdfTypeCookTorranceMono1Lobe = 0x43543130 /* 'CT10' */,
695 icSigBrdfTypeCookTorranceMono2Lobe = 0x43543230 /* 'CT20' */,
696 icSigBrdfTypeCookTorranceMono3Lobe = 0x43543330 /* 'CT30' */,
697 icSigBrdfTypeCookTorranceColor1Lobe = 0x43543131 /* 'CT11' */,
698 icSigBrdfTypeCookTorranceColor2Lobe = 0x43543231 /* 'CT21' */,
699 icSigBrdfTypeCookTorranceColor3Lobe = 0x43543331 /* 'CT31' */,
700 icSigBrdfTypeWardMono = 0x57617230 /* 'War0' */,
701 icSigBrdfTypeWardColor = 0x57617231 /* 'War1' */,
702 icSigBrdfTypeLafortuneMono1Lobe = 0x4c613130 /* 'La10' */,
703 icSigBrdfTypeLafortuneMono2Lobe = 0x4c613230 /* 'La20' */,
704 icSigBrdfTypeLafortuneMono3Lobe = 0x4c613330 /* 'La30' */,
705 icSigBrdfTypeLafortuneColor1Lobe = 0x4c613131 /* 'La11' */,
706 icSigBrdfTypeLafortuneColor2Lobe = 0x4c613231 /* 'La21' */,
707 icSigBrdfTypeLafortuneColor3Lobe = 0x4c613331 /* 'La31' */,
709
710/**
711 * BRDF function signatures
712 */
713typedef enum {
714 icSigBRDFFunctionMonochrome = 0x6d6f6e6f, /* 'mono' */
715 icSigBRDFFunctionColor = 0x636f6c72 /* 'colr' */
717
718
719/**
720* ColorantInfoStructure (icSigColorantInfoStruct) Member Tag signatures
721*/
722typedef enum {
723 icSigCinfNameMbr = 0x6e616d65, /* 'name' */
724 icSigCinfLocalizedNameMbr = 0x6c636e6d, /* 'lcnm' */
725 icSigCinfPcsDataMbr = 0x70637320, /* 'pcs ' */
726 icSigCinfSpectralDataMbr = 0x73706563, /* 'spec' */
728/** Convenience Enum Definitions - Not defined in proposal*/
729#define icSigCinfUnknownMbr ((icColorInfoMemberSignature) 0x3f3f3f3f) /* '????' */
730#define icMaxCinfMbr ((icColorInfoMemberSignature) 0xFFFFFFFF)
731
732
733/**
734* ColorEncodingParamsStructure (icSigColorEncodingParamsStruct) Member Tag signatures
735*/
736typedef enum {
737 icSigCeptBluePrimaryXYZMbr = 0x6258595a, /* bXYZ' */
738 icSigCeptGreenPrimaryXYZMbr = 0x6758595a, /* gXYZ' */
739 icSigCeptRedPrimaryXYZMbr = 0x7258595a, /* rXYZ' */
740 icSigCeptTransferFunctionMbr = 0x66756e63, /* func’ */
741 icSigCeptInverseTransferFunctionMbr = 0x69666e63, /* ifnc’ */
742 icSigCeptLumaChromaMatrixMbr = 0x6c6d6174, /* lmat' */
743 icSigCeptWhitePointLuminanceMbr = 0x776c756d, /* wlum' */
744 icSigCeptWhitePointChromaticityMbr = 0x7758595a, /* wXYZ' */
745 icSigCeptEncodingRangeMbr = 0x65526e67, /* eRng' */
746 icSigCeptBitDepthMbr = 0x62697473, /* bits' */
747 icSigCeptImageStateMbr = 0x696d7374, /* imst' */
748 icSigCeptImageBackgroundMbr = 0x69626b67, /* ibkg' */
749 icSigCeptViewingSurroundMbr = 0x73726e64, /* srnd' */
750 icSigCeptAmbientIlluminanceMbr = 0x61696c6d, /* ailm' */
753 icSigCeptViewingFlareMbr = 0x666c6172, /* 'flar' */
760/** Convenience Enum Definitions - Not defined in proposal*/
761#define icSigCeptUnknownMbr ((icCepsMemberSignature) 0x3f3f3f3f) /* '????' */
762#define icMaxCeptMbr ((icCepsMemberSignature) 0xFFFFFFFF)
763
764
765/**
766* MeasurementInfoStructure (icSigMeasurementInfoStruct) Member Tag signatures
767*/
768typedef enum {
769 icSigMeasBackingMbr = 0x6d62616b, /* 'mbak' */
770 icSigMeasFlareMbr = 0x6d666c72, /* 'mflr' */
771 icSigMeasGeometryMbr = 0x6d67656f, /* 'mgeo' */
772 icSigMeasIlluminantMbr = 0x6d696c6c, /* 'mill' */
773 icSigMeasIlluminantRangeMbr = 0x6d697772, /* 'miwr' */
774 icSigMeasModeMbr = 0x6d6d6f64, /* 'mmod' */
776/** Convenience Enum Definitions - Not defined in proposal*/
777#define icSigMeasUnknownMbr ((icMeasInfoMemberSignature) 0x3f3f3f3f) /* '????' */
778#define icMaxMeasMbr ((icMeasInfoMemberSignature) 0xFFFFFFFF)
779
780
781/**
782* NamedColorStructure (icSigNamedColorStruct) Member Tag signatures
783*/
784typedef enum {
785 icSigNmclBrdfColorimetricMbr = 0x62636f6c, /* 'bcol' */
786 icSigNmclBrdfColorimetricParamsMbr = 0x62637072, /* 'bcpr' */
787 icSigNmclBrdfSpectralMbr = 0x62737063, /* 'bspc' */
788 icSigNmclBrdfSpectralParamsMbr = 0x62737072, /* 'bspr' */
789 icSigNmclDeviceDataMbr = 0x64657620, /* 'dev ' */
790 icSigNmclLocalizedNameMbr = 0x6c636e6d, /* 'lcnm' */
791 icSigNmclNameMbr = 0x6e616d65, /* 'name' */
792 icSigNmclNormalMapMbr = 0x6e6d6170, /* 'nmap' */
793 icSigNmclPcsDataMbr = 0x70637320, /* 'pcs ' */
794 icSigNmclSpectralDataMbr = 0x73706563, /* 'spec' */
795 icSigNmclSpectralOverBlackMbr = 0x73706362, /* 'spcb' */
796 icSigNmclSpectralOverGrayMbr = 0x73706367, /* 'spcg' */
797 icSigNmclTintMbr = 0x74696e74, /* 'tint' */
799/** Convenience Enum Definitions - Not defined in proposal*/
800#define icSigNmclUnknownMbr ((icNmClrMemberSignature) 0x3f3f3f3f) /* '????' */
801#define icMaxNmclMbr ((icNmClrMemberSignature) 0xFFFFFFFF)
802
803
804/**
805* ProfileInfoStructure (icSigProfileInfoStruct) Member Tag signatures
806*/
807typedef enum {
808 icSigPinfAttributesMbr = 0x61747472, /* 'attr' */
809 icSigPinfProfileDescMbr = 0x70647363, /* 'pdsc' */
810 icSigPinfProfileIDMbr = 0x70696420, /* 'pid ' */
811 icSigPinfManufacturerDescMbr = 0x646d6e64, /* 'dmnd' */
812 icSigPinfManufacturerSigMbr = 0x646d6e73, /* 'dmns' */
813 icSigPinfModelDescMbr = 0x646d6464, /* 'dmdd' */
814 icSigPinfModelSigMbr = 0x6d6f6420, /* 'mod ' */
815 icSigPinfRenderTransformMbr = 0x7274726e, /* 'rtrn' */
816 icSigPinfTechnologyMbr = 0x74656368, /* 'tech' */
818/** Convenience Enum Definitions - Not defined in proposal*/
819#define icSigPinfUnknownMbr ((icProfileInfoMemberSignature) 0x3f3f3f3f) /* '????' */
820#define icMaxPinfMbr ((icProfileInfoMemberSignature) 0xFFFFFFFF)
821
822
823/**
824* TintZeroStructure (icSigTintZeroStruct) Member Tag signatures
825*/
826typedef enum {
827 icSigTnt0DeviceDataMbr = 0x64657620, /* 'dev ' */
828 icSigTnt0PcsDataMbr = 0x70637320, /* 'pcs ' */
829 icSigTnt0SpectralDataMbr = 0x73706563, /* 'spec' */
830 icSigTnt0SpectralOverBlackMbr = 0x73706362, /* 'spcb' */
831 icSigTnt0SpectralOverGrayMbr = 0x73706367, /* 'spcg' */
833/** Convenience Enum Definitions - Not defined in proposal*/
834#define icSigTnt0UnknownMbr ((icTntMemberSignature) 0x3f3f3f3f) /* '????' */
835#define icMaxTnt0Mbr ((icTnt0MemberSignature) 0xFFFFFFFF)
836
837
838/**
839 * Color Space Signatures.
840 * Note that only icSigXYZData and icSigLabData are valid
841 * Profile Connection Spaces (PCSs)
842 */
843typedef enum {
844 icSigNoColorData = 0x00000000,
845
846 icSigXYZData = 0x58595A20, /* 'XYZ ' */
847 icSigLabData = 0x4C616220, /* 'Lab ' */
848 icSigLuvData = 0x4C757620, /* 'Luv ' */
849 icSigYCbCrData = 0x59436272, /* 'YCbr' */
850 icSigYxyData = 0x59787920, /* 'Yxy ' */
851 icSigRgbData = 0x52474220, /* 'RGB ' */
852 icSigGrayData = 0x47524159, /* 'GRAY' */
853 icSigHsvData = 0x48535620, /* 'HSV ' */
854 icSigHlsData = 0x484C5320, /* 'HLS ' */
855 icSigCmykData = 0x434D594B, /* 'CMYK' */
856 icSigCmyData = 0x434D5920, /* 'CMY ' */
857
858 icSig1colorData = 0x31434C52, /* '1CLR' */
859 icSig2colorData = 0x32434C52, /* '2CLR' */
860 icSig3colorData = 0x33434C52, /* '3CLR' */
861 icSig4colorData = 0x34434C52, /* '4CLR' */
862 icSig5colorData = 0x35434C52, /* '5CLR' */
863 icSig6colorData = 0x36434C52, /* '6CLR' */
864 icSig7colorData = 0x37434C52, /* '7CLR' */
865 icSig8colorData = 0x38434C52, /* '8CLR' */
866 icSig9colorData = 0x39434C52, /* '9CLR' */
867 icSig10colorData = 0x41434C52, /* 'ACLR' */
868 icSig11colorData = 0x42434C52, /* 'BCLR' */
869 icSig12colorData = 0x43434C52, /* 'CCLR' */
870 icSig13colorData = 0x44434C52, /* 'DCLR' */
871 icSig14colorData = 0x45434C52, /* 'ECLR' */
872 icSig15colorData = 0x46434C52, /* 'FCLR' */
873 icSigNamedData = 0x6e6d636c, /* 'nmcl' */
874
875 icSigMCH1Data = 0x31434C52, /* '1CLR' */
876 icSigMCH2Data = 0x32434C52, /* '2CLR' */
877 icSigMCH3Data = 0x33434C52, /* '3CLR' */
878 icSigMCH4Data = 0x34434C52, /* '4CLR' */
879 icSigMCH5Data = 0x35434C52, /* '5CLR' */
880 icSigMCH6Data = 0x36434C52, /* '6CLR' */
881 icSigMCH7Data = 0x37434C52, /* '7CLR' */
882 icSigMCH8Data = 0x38434C52, /* '8CLR' */
883 icSigMCH9Data = 0x39434C52, /* '9CLR' */
884 icSigMCHAData = 0x41434C52, /* 'ACLR' */
885 icSigMCHBData = 0x42434C52, /* 'BCLR' */
886 icSigMCHCData = 0x43434C52, /* 'CCLR' */
887 icSigMCHDData = 0x44434C52, /* 'DCLR' */
888 icSigMCHEData = 0x45434C52, /* 'ECLR' */
889 icSigMCHFData = 0x46434C52, /* 'FCLR' */
890
891 icSigNChannelData = 0x6e630000, /* "nc0000" */
892 /*Note: "nc0001" through "ncFFFF" are also valid signatures defined using macro icNColorSpaceSig()*/
893
894 icSigSrcMCSChannelData = 0x6d630000, /* "mc0000" */
895 /*Note: "mc0001" through "mcFFFF" are also valid signatures defined using macro icNColorSpaceSig()*/
896
898
899/** Convenience Enum Definitions - Not defined in ICC specification*/
900#define icSigGamutData ((icColorSpaceSignature) 0x67616D74) /* 'gamt' */
901#define icSigBRDFParameters ((icColorSpaceSignature) 0x62700000) /* "bp0000" */
902#define icSigBRDFDirect ((icColorSpaceSignature) 0x62640000) /* "bd0000" */
903#define icSigUnknownData ((icColorSpaceSignature) 0x3f3f3f3f) /* '????' */
904#define icMaxEnumData ((icColorSpaceSignature) 0xFFFFFFFF)
905
906/** icSpectralColorSignature enumerations */
907typedef enum {
909 icSigReflectanceSpectralData = 0x72730000, /* "rs0000" */
910 /*Note: "rs0001" through "rsFFFF" are also valid signatures defined using macro icSpectralColorSpaceSig()*/
911
912 icSigTransmisionSpectralData = 0x74730000, /* "ts0000" */
913 /*Note: "ts0001" through "tsFFFF" are also valid signatures defined using macro icSpectralColorSpaceSig()*/
914
915 icSigRadiantSpectralData = 0x65730000, /* "es0000" */
916 /*Note: "ts0001" through "tsFFFF" are also valid signatures defined using macro icSpectralColorSpaceSig()*/
917
918 icSigBiSpectralReflectanceData = 0x62730000, /* "bs0000" */
919 /*Note: "bs0001" through "bsFFFF" are also valid signatures defined using macro icSpectralColorSpaceSig(*)*/
920
921 icSigSparseMatrixReflectanceData = 0x736D0000, /* "sm0000" */
922 /*Note: "sm0001" through "smFFFF" are also valid signatures defined using macro icSpectralColorSpaceSig(*)*/
923
925
926typedef enum {
927 icSigNoMCSData = 0x00000000,
928 icSigMCSData = 0x6d630000, /* "mc0000" */
929 /*Note: "nc0001" through "ncFFFF" are also valid signatures defined using macro icNColorSpaceSig()*/
931
932#define icGetColorSpaceType(sig) ((icColorSpaceSignature)(((icUInt32Number)sig)&0xffff0000))
933#define icIsSameColorSpaceType(sig, type) ((((icUInt32Number)sig)&0xffff0000)==((icUInt32Number)(type)))
934#define icNumColorSpaceChannels(sig) (((icUInt32Number)sig)&0x0000ffff)
935#define icNColorSpaceSig(type, n) ((icColorSpaceSignature)(icGetColorSpaceType(type)+icNumColorSpaceChannels(n)))
936#define icSpectralColorSpaceSig(type, n) ((icSpectralColorSignature)(icGetColorSpaceType(type)+icNumColorSpaceChannels(n)))
937
938/** Allowable icColorSpaceSignature values for xform PCS purposes */
939#define icSigLabPcsData icSigLabData
940#define icSigXYZPcsData icSigXYZData
941#define icSigReflectanceSpectralPcsData ((icColorSpaceSignature)icSigReflectanceSpectralData)
942#define icSigTransmissionSpectralPcsData ((icColorSpaceSignature)icSigTransmisionSpectralData)
943#define icSigRadiantSpectralPcsData ((icColorSpaceSignature)icSigRadiantSpectralData)
944#define icSigBiDirReflectanceSpectralPcsData ((icColorSpaceSignature)icSigBiSpectralReflectanceData)
945#define icSigSparseMatrixSpectralPcsData ((icColorSpaceSignature)icSigSparseMatrixReflectanceData)
946
947/* Default luminance (cd/m^2) for converting between Luminance based and Normalized colorimetry */
948#define icDefaultLuminance 160
949
950/** profileClass enumerations */
951typedef enum {
952 icSigInputClass = 0x73636E72, /* 'scnr' */
953 icSigDisplayClass = 0x6D6E7472, /* 'mntr' */
954 icSigOutputClass = 0x70727472, /* 'prtr' */
955 icSigLinkClass = 0x6C696E6B, /* 'link' */
956 icSigAbstractClass = 0x61627374, /* 'abst' */
957 icSigColorSpaceClass = 0x73706163, /* 'spac' */
958 icSigNamedColorClass = 0x6e6d636c, /* 'nmcl' */
959 icSigColorEncodingClass = 0x63656e63, /* 'cenc' */
960 icSigMaterialIdentificationClass = 0x6D696420, /* 'mid ' */
961 icSigMaterialLinkClass = 0x6d6c6e6b, /* 'mlnk' */
962 icSigMaterialVisualizationClass = 0x6d766973, /* 'mvis' */
964
965/** Convenience Enum Definition - Not defined in ICC specification*/
966#define icMaxEnumClass ((icProfileClassSignature) 0xFFFFFFFF)
967
968
969
970/** Platform Signatures */
971typedef enum {
972 icSigMacintosh = 0x4150504C, /* 'APPL' */
973 icSigMicrosoft = 0x4D534654, /* 'MSFT' */
974 icSigSolaris = 0x53554E57, /* 'SUNW' */
975 icSigSGI = 0x53474920, /* 'SGI ' */
976 icSigTaligent = 0x54474E54, /* 'TGNT' */
977 icSigUnkownPlatform = 0x00000000
979
980/** Convenience Enum Definition - Not defined in ICC specification*/
981#define icMaxEnumPlatform ((icPlatformSignature) 0xFFFFFFFF)
982
983
984/** CMM signatures from the signature registry (as of Mar 6, 2018) */
985typedef enum {
986 icSigAdobe = 0x41444245, /* 'ADBE' */
987 icSigAgfa = 0x41434D53, /* 'ACMS' */
988 icSigApple = 0x6170706C, /* 'appl' */
989 icSigColorGear = 0x43434D53, /* 'CCMS' */
990 icSigColorGearLite = 0x5543434D, /* 'UCCM' */
991 icSigColorGearC = 0x55434D53, /* 'UCMS' */
992 icSigEFI = 0x45464920, /* 'EFI ' */
993 icSigExactScan = 0x45584143, /* 'EXAC' */
994 icSigFujiFilm = 0x46462020, /* 'FF ' */
995 icSigHarlequinRIP = 0x48434d4d, /* 'HCMM' */
996 icSigArgyllCMS = 0x6172676C, /* 'argl' */
997 icSigLogoSync = 0x44676f53, /* 'LgoS' */
998 icSigHeidelberg = 0x48444d20, /* 'HDM ' */
999 icSigLittleCMS = 0x6C636D73, /* 'lcms' */
1000 icSigKodak = 0x4b434d53, /* 'KCMS' */
1001 icSigKonicaMinolta = 0x4d434d44, /* 'MCML' */
1002 icSigWindowsCMS = 0x57435320, /* 'WCS ' */
1003 icSigMutoh = 0x5349474E, /* 'SIGN' */
1004 icSigOnyxGraphics = 0x4f4e5958, /* 'ONYX' */
1005 icSigRefIccMAX = 0x52494343, /* 'RIMX' */
1006 icSigDemoIccMAX = 0x44494d58, /* 'DIMX' */
1007 icSigRolfGierling = 0x52474d53, /* 'RGMS' */
1008 icSigSampleICC = 0x53494343, /* 'SICC' */
1009 icSigToshiba = 0x54434D4D, /* 'TCMM' */
1010 icSigTheImagingFactory = 0x33324254, /* '32BT' */
1011 icSigVivo = 0x7669766F, /* 'VIVO' */
1012 icSigWareToGo = 0x57544720, /* 'WTG ' */
1013 icSigZoran = 0x7a633030, /* 'zc00' */
1014 icSigUnknownCmm = 0x00000000,
1016/** Convenience Enum Definition - Not defined in ICC specification*/
1017#define icMaxEnumCmm ((icCmmSignature) 0xFFFFFFFF)
1018
1019
1020/** Rendering Intent Gamut Signatures */
1021typedef enum {
1022 icSigPerceptualReferenceMediumGamut = 0x70726d67, /* 'prmg' */
1024
1025/** Convenience Enum Definition - Not defined in ICC specification*/
1026#define icMaxEnumReferenceMediumGamut ((icReferenceMediumGamutSignature 0xFFFFFFFF)
1027
1028
1029/** Colorimetric Intent Image State Gamut Signatures */
1030typedef enum {
1031 icSigSceneColorimetryEstimates = 0x73636F65, /* 'scoe' */
1032 icSigSceneAppearanceEstimates = 0x73617065, /* 'sape' */
1033 icSigFocalPlaneColorimetryEstimates = 0x66706365, /* 'fpce' */
1035 icSigReflectionPrintOutputColorimetry = 0x72706F63, /* 'rpoc' */
1037
1038/** Convenience Enum Definition - Not defined in ICC specification*/
1039#define icMaxEnumColorimetricIntentImageState ((icColorimetricIntentImageStateSignature 0xFFFFFFFF)
1040
1041
1042/**
1043 * MPE Curve segment Signatures
1044 */
1045typedef enum {
1046 icSigFormulaCurveSeg = 0x70617266, /* 'parf' */
1047 icSigSampledCurveSeg = 0x73616D66, /* 'samf' */
1049
1050/** Convenience Enum Definition - Not defined in ICC specification*/
1051#define icMaxCurveSegSignature ((icCurveSegSignature 0xFFFFFFFF)
1052
1053/**
1054 * MPE Curve Set Curve signature
1055 */
1056typedef enum {
1057 icSigSegmentedCurve = 0x63757266, /* 'curf' */
1058 icSigSingleSampledCurve = 0x736e6766, /* 'sngf' */
1059 icSigSampledCalculatorCurve = 0x636c6366, /* 'clcf' */
1061
1062/** Convenience Enum Definition - Not defined in ICC specification*/
1063#define icMaxCurveElemSignature ((icCurveElemSignature 0xFFFFFFFF)
1064
1065/** Enum for defining type of Single Sampled Curve**/
1070
1071#define icMaxSingleSampledCurveType icExtendSingleSampledCurve
1072
1073/**
1074 * MPE Tone Map Function signature
1075 */
1076typedef enum {
1077 icSigToneMapFunction = 0x6d617066, /* 'mapf' */
1079
1080/** Convenience Enum Definition - Not defined in ICC specification*/
1081#define icMaxCurveElemSignature ((icCurveElemSignature 0xFFFFFFFF)
1082
1083
1084/** Enum to identify single segment curve / clut2 element storage type **/
1091
1092#define icMaxValueType icValueTypeUInt8
1093/**
1094 * MPE Future Extension Acs signature
1095 */
1096
1098
1099/** Convenience Definition - Not defined in ICC specification*/
1100#define icSigAcsZero ((icAcsSignature) 0x00000000)
1101
1102/**
1103 * MPE Spectral Data Conversion flags.
1104 */
1105#define icRelativeSpectralData 0x00000000 /* Bit position 0 */
1106#define icAbsoluteSpectralData 0x00000001 /* Bit position 0 */
1107#define icXYZSpectralData 0x00000000 /* Bit position 1 */
1108#define icLabSpectralData 0x00000002 /* Bit position 1 */
1109
1110/*------------------------------------------------------------------------*/
1111
1112/**
1113 * Other enums
1114 */
1115
1116/** Measurement Flare, used in the measurmentType tag */
1117typedef enum {
1118 icFlare0 = 0x00000000, /* 0% flare */
1119 icFlare100 = 0x00000001, /* 100% flare */
1121
1122/** Convenience Enum Definition - Not defined in ICC specification*/
1123#define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF)
1124#define icMaxFlare ((icMeasurementFlare) 0xFFFFFFFF) /* as defined by earlier versions */
1125
1126
1127
1128/** Measurement Geometry, used in the measurmentType tag */
1129typedef enum {
1130 icGeometryUnknown = 0x00000000, /* Unknown geometry */
1131 icGeometry045or450 = 0x00000001, /* 0/45, 45/0 */
1132 icGeometry0dord0 = 0x00000002, /* 0/d or d/0 */
1134
1135/** Convenience Enum Definition - Not defined in ICC specification*/
1136#define icMaxEnumGeometry ((icMeasurementGeometry) 0xFFFFFFFF)
1137#define icMaxGeometry ((icMeasurementGeometry) 0xFFFFFFFF)
1138
1139
1140
1141/** Rendering Intents, used in the profile header */
1150
1151/** Convenience Enum Definitions - Not defined in ICC specification*/
1152#define icUnknownIntent ((icRenderingIntent) 0x3f3f3f3f) /* '????' */
1153#define icMaxEnumIntent ((icRenderingIntent) 0xFFFFFFFF)
1154
1155
1156
1157/** Different Spot Shapes currently defined, used for screeningType */
1168
1169/** Convenience Enum Definition - Not defined in ICC specification*/
1170#define icMaxEnumSpot ((icSpotShape) 0xFFFFFFFF)
1171
1172
1173
1174/** Standard Observer, used in the measurmentType tag */
1175typedef enum {
1176 icStdObsUnknown = 0x00000000, /* Unknown observer */
1177 icStdObs1931TwoDegrees = 0x00000001, /* 1931 two degrees */
1178 icStdObs1964TenDegrees = 0x00000002, /* 1961 ten degrees */
1180
1181#define icStdObsCustom icStdObsUnknown
1182
1183/** Convenience Enum Definition - Not defined in ICC specification*/
1184#define icMaxEnumStdObs ((icStandardObserver) 0xFFFFFFFF)
1185#define icMaxStdObs ((icStandardObserver) 0xFFFFFFFF) /* as defined by earlier versions */
1186
1187
1188
1189/** Pre-defined illuminants, used in measurement and viewing conditions type */
1190typedef enum {
1192 icIlluminantD50 = 0x00000001,
1193 icIlluminantD65 = 0x00000002,
1194 icIlluminantD93 = 0x00000003,
1195 icIlluminantF2 = 0x00000004,
1196 icIlluminantD55 = 0x00000005,
1197 icIlluminantA = 0x00000006,
1198 icIlluminantEquiPowerE = 0x00000007, /* Equi-Power (E) */
1199 icIlluminantF8 = 0x00000008,
1200
1201/* The following illuminants are defined for V5 */
1202 icIlluminantBlackBody = 0x00000009, /* defined by CCT */
1203 icIlluminantDaylight = 0x0000000A, /* defiend by CCT */
1204 icIlluminantB = 0x0000000B,
1205 icIlluminantC = 0x0000000C,
1206 icIlluminantF1 = 0x0000000D,
1207 icIlluminantF3 = 0x0000000E,
1208 icIlluminantF4 = 0x0000000F,
1209 icIlluminantF5 = 0x00000010,
1210 icIlluminantF6 = 0x00000011,
1211 icIlluminantF7 = 0x00000012,
1212 icIlluminantF9 = 0x00000013,
1213 icIlluminantF10 = 0x00000014,
1214 icIlluminantF11 = 0x00000015,
1215 icIlluminantF12 = 0x00000016,
1216} icIlluminant;
1217
1218#define icIlluminantCustom icIlluminantUnknown
1219
1220/** Convenience Enum Definitions - Not defined in ICC specification*/
1221#define icMaxEnumIlluminant ((icIlluminant) 0xFFFFFFFF)
1222#define icMaxEnumIluminant ((icIlluminant) 0xFFFFFFFF) /* as defined by earlier versions */
1223
1224
1225
1226/**
1227 * A not so exhaustive list of ISO 369 Language Codes
1228 * Convenience definition - Not defined in ICC specification
1229 * ICC.1 constrains to 16 bit (2 characters)
1230 * See https://www.iso.org/iso-639-language-codes.html
1231 */
1232typedef enum {
1233 icLanguageCodeEnglish = 0x656E, /* 'en' */
1234 icLanguageCodeGerman = 0x6465, /* 'de' */
1235 icLanguageCodeItalian = 0x6974, /* 'it' */
1236 icLanguageCodeDutch = 0x6E6C, /* 'nl' */
1237 icLanguageCodeSweden = 0x7376, /* 'sv' */
1238 icLanguageCodeSpanish = 0x6573, /* 'es' */
1239 icLanguageCodeDanish = 0x6461, /* 'da' */
1240 icLanguageCodeNorwegian = 0x6E6F, /* 'no' */
1241 icLanguageCodeJapanese = 0x6A61, /* 'ja' */
1242 icLanguageCodeFinnish = 0x6669, /* 'fi' */
1243 icLanguageCodeTurkish = 0x7472, /* 'tr' */
1244 icLanguageCodeKorean = 0x6B6F, /* 'ko' */
1245 icLanguageCodeChinese = 0x7A68, /* 'zh' */
1246 icLanguageCodeFrench = 0x6672, /* 'fr' */
1249
1250/**
1251 * A not so exhaustive list of ISO 3166 country codes.
1252 * Convenience definition - Not defined in ICC specification
1253 * ICC.1 constrains to 16 bit (2 characters)
1254 * See https://www.iso.org/iso-3166-country-codes.html
1255 */
1256typedef enum {
1257 icCountryCodeUSA = 0x5553, /* 'US' */
1258 icCountryCodeUnitedKingdom = 0x554B, /* 'UK' */
1259 icCountryCodeGermany = 0x4445, /* 'DE' */
1260 icCountryCodeItaly = 0x4954, /* 'IT' */
1261 icCountryCodeNetherlands = 0x4E4C, /* 'NL' */
1262 icCountryCodeSpain = 0x4543, /* 'ES' */
1263 icCountryCodeDenmark = 0x444B, /* 'DK' */
1264 icCountryCodeNorway = 0x4E4F, /* 'NO' */
1265 icCountryCodeJapan = 0x4A50, /* 'JP' */
1266 icCountryCodeFinland = 0x4649, /* 'FI' */
1267 icCountryCodeTurkey = 0x5452, /* 'TR' */
1268 icCountryCodeKorea = 0x4B52, /* 'KR' */
1269 icCountryCodeChina = 0x434E, /* 'CN' */
1270 icCountryCodeTaiwan = 0x5457, /* 'TW' */
1271 icCountryCodeFrance = 0x4652, /* 'FR' */
1274
1275
1276/** Measurement Unit Signatures used in ResponseCurveSet16Type */
1277typedef enum {
1278 icSigStatusA = 0x53746141, /* 'StaA' */
1279 icSigStatusE = 0x53746145, /* 'StaE' */
1280 icSigStatusI = 0x53746149, /* 'StaI' */
1281 icSigStatusT = 0x53746154, /* 'StaT' */
1282 icSigStatusM = 0x5374614D, /* 'StaM' */
1283 icSigDN = 0x444E2020, /* 'DN ' */
1284 icSigDNP = 0x444E2050, /* 'DN P' */
1285 icSigDNN = 0x444E4E20, /* 'DNN ' */
1286 icSigDNNP = 0x444E4E50, /* 'DNNP' */
1288
1289/** Convenience Enum Definition - Not defined in ICC specification*/
1290#define icMaxEnumMeasurmentUnitSig ((icMeasurementUnitSig) 0xffffffff)
1291
1292
1293
1294/** Colorant and Phosphor Encodings used in chromaticity type */
1295typedef enum {
1296 icColorantUnknown = 0x0000, /* Unknown */
1297 icColorantITU = 0x0001, /* ITU-R BT.709 */
1298 icColorantSMPTE = 0x0002, /* SMPTE RP145-1994 */
1299 icColorantEBU = 0x0003, /* EBU Tech.3213-E */
1300 icColorantP22 = 0x0004, /* P22 */
1302
1303/** Convenience Enum Definition - Not defined in ICC specification*/
1304#define icMaxEnumColorant ((icColorantEncoding) 0xFFFF)
1305
1306
1307/**
1308 * Note: The next three enum types are for DeviceSettingType structures
1309 * supported by V2 profiles. The DeviceSettingsType was removed in the
1310 * V4 specificaiton.*/
1311
1312/** DeviceSettingsType structure ID signatures for Microsoft 'msft' platform*/
1313typedef enum {
1314 icMSFTDevSetResolution = 0x72736C6E, /* 'rsln' */
1315 icMSFTDevSetMediaType = 0x6D747970, /* 'mtyp' */
1316 icMSFTDevSetMediaHalftone = 0x6866746E, /* 'hftn' */
1318
1319/** DeviceSettingsType media encodings for Microsoft 'msft' platform */
1320typedef enum {
1321 icDMMediaStandard = 0x0001, /* Standard paper */
1322 icDMMediaTransparancy = 0x0002, /* Transparency */
1323 icDMMediaGlossy = 0x0003, /* Glossy paper */
1324 icDMMediaUser = 0x0100, /* Device-specific type media
1325 are >= 256 */
1327
1328/** DeviceSettingsType media encodings for Microsoft 'msft' platform */
1329typedef enum {
1330 icDMDitherNone = 0x0001, /* No dithering */
1331 icDMDitherCoarse = 0x0002, /* Dither with a coarse brush */
1332 icDMDitherFine = 0x0003, /* Dither with a fine brush */
1333 icDMDitherLineArt = 0x0004, /* LineArt dithering */
1334 icDMDitherErrorDiffusion = 0x0005, /* Error Diffusion */
1339 icDMDitherGrayscale = 0x000A, /* Device does grayscaling */
1340 icDMDitherUser = 0x0100, /* Device-specifice halftones
1341 are >= 256 */
1343
1350
1351
1352/* Image encoding type encodings for embeddedHeightImageType and embeddedNormalImageType*/
1353typedef enum {
1357
1358/** Convenience Enum Definition - Not defined in ICC specification*/
1359#define icSparseMatrixFloatNum ((icSparseMatrixType)0x0000) //Use internal icFloatNumber encoding
1360
1361/**
1362*------------------------------------------------------------------------
1363*
1364 * Arrays of numbers
1365 */
1366
1367/** Int8 Array */
1368typedef struct {
1369 icInt8Number data[icAny]; /* Variable array of values */
1370} icInt8Array;
1371
1372/** UInt8 Array */
1373typedef struct {
1374 icUInt8Number data[icAny]; /* Variable array of values */
1375} icUInt8Array;
1376
1377/** uInt16 Array */
1378typedef struct {
1379 icUInt16Number data[icAny]; /* Variable array of values */
1381
1382/** Int16 Array */
1383typedef struct {
1384 icInt16Number data[icAny]; /* Variable array of values */
1385} icInt16Array;
1386
1387/** uInt32 Array */
1388typedef struct {
1389 icUInt32Number data[icAny]; /* Variable array of values */
1391
1392/** Int32 Array */
1393typedef struct {
1394 icInt32Number data[icAny]; /* Variable array of values */
1395} icInt32Array;
1396
1397/** UInt64 Array */
1398typedef struct {
1399 icUInt64Number data[icAny]; /* Variable array of values */
1401
1402/** Int64 Array */
1403typedef struct {
1404 icInt64Number data[icAny]; /* Variable array of values */
1405} icInt64Array;
1406
1407/** u16Fixed16 Array */
1408typedef struct {
1409 icU16Fixed16Number data[icAny]; /* Variable array of values */
1411
1412/** s15Fixed16 Array */
1413typedef struct {
1414 icS15Fixed16Number data[icAny]; /* Variable array of values */
1416
1417/** The base date time number */
1426
1427/** XYZ Number */
1433
1434/** XYZ Array */
1435typedef struct {
1436 icXYZNumber data[icAny]; /* Variable array of XYZ numbers */
1437} icXYZArray;
1438
1439/** Floting point XYZ */
1445
1446/** xy Chromaticity Number */
1451
1452/** response16Number */
1458
1459/** positionNumber **/
1464
1465/** spectral range */
1471
1472/** Useful spectral range numbers */
1473#define icRange380nm 0x5df0
1474#define icRange400nm 0x5e40
1475#define icRange700nm 0x6178
1476#define icRange780nm 0x6218
1477
1478/** observer matrix */
1484
1485/** Illuminant Vector */
1491
1492/** Curve */
1493typedef struct {
1494 icUInt32Number count; /* Number of entries */
1495 icUInt16Number data[icAny]; /* The actual table data, real
1496 * number is determined by count
1497 * Interpretation depends on how
1498 * data is used with a given tag
1499 */
1500} icCurve;
1501
1502/** Parametric Curve */
1503typedef struct {
1504 icUInt16Number funcType; /* Function Type */
1505 /* 0 = gamma only */
1506 icUInt16Number pad; /* Padding for byte alignment */
1508 /* up to 7 values Y,a,b,c,d,e,f */
1510
1511/** Parametric Curve */
1512typedef struct {
1513 icUInt16Number funcType; /* Function Type */
1514 /* 0 = gamma only */
1515 icUInt16Number pad; /* Padding for byte alignment */
1524
1525/** Data */
1526typedef struct {
1527 icDataBlockType dataFlag; /* See icDataBlockType for details */
1528 icInt8Number data[icAny]; /* Data, size determined from tag */
1529} icData;
1530
1531/** lut16 */
1532typedef struct {
1533 icUInt8Number inputChan; /* Number of input channels */
1534 icUInt8Number outputChan; /* Number of output channels */
1535 icUInt8Number clutPoints; /* Number of clutTable grid points */
1536 icInt8Number pad; /* Padding for byte alignment */
1537 icS15Fixed16Number e00; /* e00 in the 3 * 3 */
1538 icS15Fixed16Number e01; /* e01 in the 3 * 3 */
1539 icS15Fixed16Number e02; /* e02 in the 3 * 3 */
1540 icS15Fixed16Number e10; /* e10 in the 3 * 3 */
1541 icS15Fixed16Number e11; /* e11 in the 3 * 3 */
1542 icS15Fixed16Number e12; /* e12 in the 3 * 3 */
1543 icS15Fixed16Number e20; /* e20 in the 3 * 3 */
1544 icS15Fixed16Number e21; /* e21 in the 3 * 3 */
1545 icS15Fixed16Number e22; /* e22 in the 3 * 3 */
1546 icUInt16Number inputEnt; /* Number of input table entries */
1547 icUInt16Number outputEnt; /* Number of output table entries */
1548 icUInt16Number data[icAny]; /* Data follows see spec for size */
1549 /**
1550 * Data that follows is of this form
1551 *
1552 * icUInt16Number inputTable[inputChan][icAny]; * The input table
1553 * icUInt16Number clutTable[icAny]; * The clut table
1554 * icUInt16Number outputTable[outputChan][icAny]; * The output table
1555 */
1556} icLut16;
1557
1558/** lut8, input & output tables are always 256 bytes in length */
1559typedef struct {
1560 icUInt8Number inputChan; /* Number of input channels */
1561 icUInt8Number outputChan; /* Number of output channels */
1562 icUInt8Number clutPoints; /* Number of clutTable grid points */
1564 icS15Fixed16Number e00; /* e00 in the 3 * 3 */
1565 icS15Fixed16Number e01; /* e01 in the 3 * 3 */
1566 icS15Fixed16Number e02; /* e02 in the 3 * 3 */
1567 icS15Fixed16Number e10; /* e10 in the 3 * 3 */
1568 icS15Fixed16Number e11; /* e11 in the 3 * 3 */
1569 icS15Fixed16Number e12; /* e12 in the 3 * 3 */
1570 icS15Fixed16Number e20; /* e20 in the 3 * 3 */
1571 icS15Fixed16Number e21; /* e21 in the 3 * 3 */
1572 icS15Fixed16Number e22; /* e22 in the 3 * 3 */
1573 icUInt8Number data[icAny]; /* Data follows see spec for size */
1574 /**
1575 * Data that follows is of this form
1576 *
1577 * icUInt8Number inputTable[inputChan][256]; * The input table
1578 * icUInt8Number clutTable[icAny]; * The clut table
1579 * icUInt8Number outputTable[outputChan][256]; * The output table
1580 */
1581} icLut8;
1582
1583/** icLutAToB */
1584typedef struct {
1585 icUInt8Number gridPoints[16]; /* Number of grid points in each dimension. */
1586 icUInt8Number prec; /* Precision of data elements in bytes. */
1590 /*icUInt8Number data[icAny]; Data follows see spec for size */
1591} icCLutStruct;
1592
1593/** icLutAtoB */
1594typedef struct {
1595 icUInt8Number inputChan; /* Number of input channels */
1596 icUInt8Number outputChan; /* Number of output channels */
1599 icUInt32Number offsetB; /* Offset to first "B" curve */
1600 icUInt32Number offsetMat; /* Offset to matrix */
1601 icUInt32Number offsetM; /* Offset to first "M" curve */
1602 icUInt32Number offsetC; /* Offset to CLUT */
1603 icUInt32Number offsetA; /* Offset to first "A" curve */
1604 /*icUInt8Number data[icAny]; Data follows see spec for size */
1605} icLutAtoB;
1606
1607/** icLutBtoA */
1608typedef struct {
1609 icUInt8Number inputChan; /* Number of input channels */
1610 icUInt8Number outputChan; /* Number of output channels */
1613 icUInt32Number offsetB; /* Offset to first "B" curve */
1614 icUInt32Number offsetMat; /* Offset to matrix */
1615 icUInt32Number offsetM; /* Offset to first "M" curve */
1616 icUInt32Number offsetC; /* Offset to CLUT */
1617 icUInt32Number offsetA; /* Offset to first "A" curve */
1618 /*icUInt8Number data[icAny]; Data follows see spec for size */
1619} icLutBtoA;
1620
1621/** Measurement Data */
1622typedef struct {
1623 icStandardObserver stdObserver; /* Standard observer */
1624 icXYZNumber backing; /* XYZ for backing material */
1625 icMeasurementGeometry geometry; /* Measurement geometry */
1626 icMeasurementFlare flare; /* Measurement flare */
1627 icIlluminant illuminant; /* Illuminant */
1629
1630/**
1631 * Named color
1632 */
1633
1634/** Entry format for each named color */
1635typedef struct {
1636 icUInt8Number rootName[32]; /* Root name for first color */
1637 icUInt16Number pcsCoords[3]; /* PCS coordinates of color (only Lab or XYZ allowed)*/
1638 icUInt16Number deviceCoords[icAny]; /* Device coordinates of color */
1640
1641/**
1642 * icNamedColor2 takes the place of icNamedColor
1643 */
1644typedef struct {
1645 icUInt32Number vendorFlag; /* Bottom 16 bits for IC use */
1646 icUInt32Number count; /* Count of named colors */
1647 icUInt32Number nDeviceCoords; /* Number of device coordinates */
1648 icInt8Number prefix[32]; /* Prefix for each color name */
1649 icInt8Number suffix[32]; /* Suffix for each color name */
1650 icInt8Number data[icAny]; /* Named color data follows */
1651 /**
1652 * Data that follows is of this form
1653 *
1654 * icInt8Number root1[32]; * Root name for first color
1655 * icUInt16Number pcsCoords1[icAny]; * PCS coordinates of first color
1656 * icUInt16Number deviceCoords1[icAny]; * Device coordinates of first color
1657 * icInt8Number root2[32]; * Root name for second color
1658 * icUInt16Number pcsCoords2[icAny]; * PCS coordinates of first color
1659 * icUInt16Number deviceCoords2[icAny]; * Device coordinates of first color
1660 * :
1661 * :
1662 *
1663 * Alternatively written if byte packing is assumed with no padding between
1664 * structures then data can take the following form
1665 *
1666 * icNamedColor2Entry entry0; // Entry for first color
1667 * icNamedColor2Entry entry1; // Entry for second color
1668 * :
1669 * :
1670 * In either case repeat for name and PCS and device color coordinates up to (count-1)
1671 *
1672 * NOTES:
1673 * PCS and device space can be determined from the header.
1674 *
1675 * PCS coordinates are icUInt16 numbers and are described in Annex A of
1676 * the ICC spec. Only 16 bit L*a*b* and XYZ are allowed. The number of
1677 * coordinates is consistent with the headers PCS.
1678 *
1679 * Device coordinates are icUInt16 numbers where 0x0000 represents
1680 * the minimum value and 0xFFFF represents the maximum value.
1681 * If the nDeviceCoords value is 0 this field is not given.
1682 */
1684
1685/** Profile sequence structure */
1686typedef struct {
1687 icSignature deviceMfg; /* Device Manufacturer */
1688 icSignature deviceModel; /* Decvice Model */
1689 icUInt64Number attributes; /* Device attributes */
1690 icTechnologySignature technology; /* Technology signature */
1691 icInt8Number data[icAny]; /* Descriptions text follows */
1692 /**
1693 * Data that follows is of this form, this is an icInt8Number
1694 * to avoid problems with a compiler generating bad code as
1695 * these arrays are variable in length.
1696 *
1697 * icTextDescription deviceMfgDesc; * Manufacturer text
1698 * icTextDescription modelDesc; * Model text
1699 */
1700} icDescStruct;
1701
1702/** Profile sequence description */
1703typedef struct {
1704 icUInt32Number count; /* Number of descriptions */
1705 icUInt8Number data[icAny]; /* Array of description struct */
1707
1708/** textDescription */
1709typedef struct {
1710 icUInt32Number count; /* Description length */
1711 icInt8Number data[icAny]; /* Descriptions follow */
1712 /**
1713 * Data that follows is of this form
1714 *
1715 * icInt8Number desc[count] * NULL terminated ascii string
1716 * icUInt32Number ucLangCode; * UniCode language code
1717 * icUInt32Number ucCount; * UniCode description length
1718 * icInt16Number ucDesc[ucCount];* The UniCode description
1719 * icUInt16Number scCode; * ScriptCode code
1720 * icUInt8Number scCount; * ScriptCode count
1721 * icInt8Number scDesc[67]; * ScriptCode Description
1722 */
1724
1725/** Screening Data */
1726typedef struct {
1728 icS15Fixed16Number angle; /* Screen angle */
1729 icSpotShape spotShape; /* Spot Shape encodings below */
1731
1732/** screening */
1733typedef struct {
1734 icUInt32Number screeningFlag; /* Screening flag */
1735 icUInt32Number channels; /* Number of channels */
1736 icScreeningData data[icAny]; /* Array of screening data */
1737} icScreening;
1738
1739/** Text Data */
1740typedef struct {
1741 icInt8Number data[icAny]; /* Variable array of characters */
1742} icText;
1743
1744/** Structure describing either a UCR or BG curve */
1745typedef struct {
1746 icUInt32Number count; /* Curve length */
1747 icUInt16Number curve[icAny]; /* The array of curve values */
1748} icUcrBgCurve;
1749
1750/** Under color removal, black generation */
1751typedef struct {
1752 icInt8Number data[icAny]; /* The Ucr BG data */
1753 /**
1754 * Data that follows is of this form, this is a icInt8Number
1755 * to avoid problems with a compiler generating bad code as
1756 * these arrays are variable in length.
1757 *
1758 * icUcrBgCurve ucr; * Ucr curve
1759 * icUcrBgCurve bg; * Bg curve
1760 * icInt8Number string; * UcrBg description
1761 */
1762} icUcrBg;
1763
1764
1765/** viewingConditionsType */
1766typedef struct {
1767 icXYZNumber illuminant; /* In candelas per metre sq'd */
1768 icXYZNumber surround; /* In candelas per metre sq'd */
1769 icIlluminant stdIluminant; /* See icIlluminant defines */
1771
1772
1773/** CrdInfo type */
1774typedef struct {
1775 icUInt32Number count; /* Char count includes NULL */
1776 icInt8Number desc[icAny]; /* Null terminated string */
1777} icCrdInfo;
1778
1779/** ColorantOrder type */
1780typedef struct {
1781 icUInt32Number count; /* Count of colorants */
1782 icUInt8Number data[icAny]; /* One-based number of the
1783 colorant to be printed first,
1784 second... */
1786
1787/** ColorantTable Entry */
1788typedef struct {
1789 icInt8Number name[32]; /* First colorant name */
1790 icUInt16Number data[3]; /* 16 bit PCS Lab value for first */
1792
1793/** ColorantTable */
1794typedef struct {
1795 icUInt32Number count; /* Count of colorants */
1796 icColorantTableEntry entry[icAny]; /* N colorant entries */
1798
1799/*------------------------------------------------------------------------*/
1800
1801/**
1802 * Tag Type definitions
1803 */
1804
1805
1806/** The base part of each tag */
1807typedef struct {
1808 icTagTypeSignature sig; /* Signature */
1809 icInt8Number reserved[4]; /* Reserved, set to 0 */
1810} icTagBase;
1811
1812/** curveType */
1813typedef struct {
1814 icTagBase base; /* Signature, "curv" */
1815 icCurve curve; /* The curve data */
1816} icCurveType;
1817
1818/** ParametricCurveType */
1819typedef struct {
1820 icTagBase base; /* Signature, "para" */
1821 icParametricCurve curve; /* The Parametric curve data*/
1823
1824/** ParametricCurveFullType */
1825typedef struct {
1826 icTagBase base; /* Signature, "para" */
1827 icParametricCurveFull curve; /* The Parametric curve data*/
1829
1830/** dataType */
1831typedef struct {
1832 icTagBase base; /* Signature, "data" */
1833 icData data; /* The data structure */
1834} icDataType;
1835
1836/** dateTimeType */
1837typedef struct {
1838 icTagBase base; /* Signature, "dtim" */
1839 icDateTimeNumber date; /* The date */
1841
1842/** lut16Type */
1843typedef struct {
1844 icTagBase base; /* Signature, "mft2" */
1845 icLut16 lut; /* Lut16 data */
1846} icLut16Type;
1847
1848/** lut8Type, input & output tables are always 256 bytes in length */
1849typedef struct {
1850 icTagBase base; /* Signature, "mft1" */
1851 icLut8 lut; /* Lut8 data */
1852} icLut8Type;
1853
1854/** lutAtoBType new format */
1855typedef struct {
1856 icTagBase base; /* Signature, "mAB " */
1857 icLutAtoB lut; /* icLutAtoB data */
1859
1860/** lutBtoAType new format */
1861typedef struct {
1862 icTagBase base; /* Signature, "mBA " */
1863 icLutBtoA lut; /* icLutBtoA data */
1865
1866/** Measurement Type */
1867typedef struct {
1868 icTagBase base; /* Signature, "meas" */
1869 icMeasurement measurement; /* Measurement data */
1871
1872/**
1873 * Named color type
1874 */
1875
1876/** icNamedColor2Type, replaces icNamedColorType */
1877typedef struct {
1878 icTagBase base; /* Signature, "ncl2" */
1879 icNamedColor2 ncolor; /* Named color data */
1881
1882/** Profile sequence description type */
1883typedef struct {
1884 icTagBase base; /* Signature, "pseq" */
1885 icProfileSequenceDesc desc; /* The seq description */
1887
1888/** textDescriptionType */
1889typedef struct {
1890 icTagBase base; /* Signature, "desc" */
1891 icTextDescription desc; /* The description */
1893
1894/** s15Fixed16Type */
1895typedef struct {
1896 icTagBase base; /* Signature, "sf32" */
1897 icS15Fixed16Array data; /* Array of values */
1899
1900/** screeningType */
1901typedef struct {
1902 icTagBase base; /* Signature, "scrn" */
1903 icScreening screen; /* Screening structure */
1905
1906/** sigType */
1907typedef struct {
1908 icTagBase base; /* Signature, "sig" */
1909 icSignature signature; /* The signature data */
1911
1912/** textType */
1913typedef struct {
1914 icTagBase base; /* Signature, "text" */
1915 icText data; /* Variable array of characters */
1916} icTextType;
1917
1918/** u16Fixed16Type */
1919typedef struct {
1920 icTagBase base; /* Signature, "uf32" */
1921 icU16Fixed16Array data; /* Variable array of values */
1923
1924/** Under color removal, black generation type */
1925typedef struct {
1926 icTagBase base; /* Signature, "bfd " */
1927 icUcrBg data; /* ucrBg structure */
1928} icUcrBgType;
1929
1930/** uInt16Type */
1931typedef struct {
1932 icTagBase base; /* Signature, "ui16" */
1933 icUInt16Array data; /* Variable array of values */
1935
1936/** uInt32Type */
1937typedef struct {
1938 icTagBase base; /* Signature, "ui32" */
1939 icUInt32Array data; /* Variable array of values */
1941
1942/** uInt64Type */
1943typedef struct {
1944 icTagBase base; /* Signature, "ui64" */
1945 icUInt64Array data; /* Variable array of values */
1947
1948/** uInt8Type */
1949typedef struct {
1950 icTagBase base; /* Signature, "ui08" */
1951 icUInt8Array data; /* Variable array of values */
1953
1954/** viewingConditionsType */
1955typedef struct {
1956 icTagBase base; /* Signature, "view" */
1957 icViewingCondition view; /* Viewing conditions */
1959
1960/** XYZ Type */
1961typedef struct {
1962 icTagBase base; /* Signature, "XYZ" */
1963 icXYZArray data; /* Variable array of XYZ numbers */
1964} icXYZType;
1965
1966/**
1967 * CRDInfoType where [0] is the CRD product name count and string and
1968 * [1] -[5] are the rendering intents 0-4 counts and strings
1969 */
1970typedef struct {
1971 icTagBase base; /* Signature, "crdi" */
1972 icCrdInfo info; /* 5 sets of counts & strings */
1974 /* icCrdInfo productName; PS product count/string */
1975 /* icCrdInfo CRDName0; CRD name for intent 0 */
1976 /* icCrdInfo CRDName1; CRD name for intent 1 */
1977 /* icCrdInfo CRDName2; CRD name for intent 2 */
1978 /* icCrdInfo CRDName3; CRD name for intent 3 */
1979
1980/** ColorantOrderType type */
1981typedef struct {
1982 icTagBase base; /* Signature, "clro" */
1983 icColorantOrder order; /* ColorantOrder */
1985
1986/** ColorantTableType type */
1987typedef struct {
1988 icTagBase base; /* Signature, "clrt" */
1989 icColorantTable table; /* ColorantTable */
1991
1992/** ChromaticAdaptation type */
1993typedef struct {
1994 icTagBase base; /* Signature, "chad" */
1995 icS15Fixed16Number matrix[9]; /* ChromaticAdaptation Matrix */
1997
1998/** MultiLocalizedUnicodeEntry type */
1999typedef struct {
2000 icUInt16Number languageCode; /* name language code ISO-639 */
2001 icUInt16Number countryCode; /* name country code ISO-3166 */
2002 icUInt32Number len; /* string length in bytes */
2003 icUInt32Number off; /* offset in bytes from start of tag */
2005
2006/** MultiLocalizedUnicode type */
2007typedef struct {
2008 icTagBase base; /* Signature, "mluc" */
2009 icUInt32Number count; /* Count of name records */
2010 icUInt32Number size; /* name record size */
2012
2013
2014/*------------------------------------------------------------------------*/
2015
2016/**
2017* Lists of tags, tags, profile header and profile structure
2018 */
2019
2020/** A tag */
2021typedef struct {
2022 icTagSignature sig; /* The tag signature */
2023 icUInt32Number offset; /* Start of tag relative to
2024 * start of header, Spec
2025 * Clause 5 */
2026 icUInt32Number size; /* Size in bytes */
2027} icTag;
2028
2029/** A Structure that may be used independently for a list of tags */
2030typedef struct {
2031 icUInt32Number count; /* Number of tags in the profile */
2032 icTag tags[icAny]; /* Variable array of tags */
2033} icTagList;
2034
2035/** Profile ID */
2036typedef union {
2040} icProfileID;
2041
2042/** The Profile header */
2043typedef struct {
2044 icUInt32Number size; /* Profile size in bytes */
2045 icSignature cmmId; /* CMM for this profile */
2046 icUInt32Number version; /* Format version number */
2048 icColorSpaceSignature colorSpace; /* Color space of data */
2049 icColorSpaceSignature pcs; /* PCS, XYZ or Lab only */
2050 icDateTimeNumber date; /* Date profile was created */
2051 icSignature magic; /* icMagicNumber */
2052 icPlatformSignature platform; /* Primary Platform */
2053 icUInt32Number flags; /* Various bit settings */
2054 icSignature manufacturer; /* Device manufacturer */
2055 icUInt32Number model; /* Device model number */
2056 icUInt64Number attributes; /* Device attributes */
2057 icUInt32Number renderingIntent; /* Rendering intent */
2058 icXYZNumber illuminant; /* Profile illuminant */
2059 icSignature creator; /* Profile creator */
2060 icProfileID profileID; /* Profile ID using RFC 1321 MD5 128bit fingerprinting */
2061/*Fields New for V5*/
2062 icSpectralColorSignature spectralPCS; /* Spectral colour space signature */
2063 icSpectralRange spectralRange; /* Start, end, and steps for spectral PCS */
2064 icSpectralRange biSpectralRange; /* Start, end, and steps for bi-spectral PCS */
2065 icMaterialColorSignature mcs; /* Material Connection Space */
2066 icSignature deviceSubClass; /* Refinement on type of profile */
2067
2068 icInt8Number reserved[4]; /* Reserved for future use */
2069} icHeader;
2070
2071/**
2072 * A profile,
2073 * we can't use icTagList here because its not at the end of the structure
2074 */
2075typedef struct {
2076 icHeader header; /* The header */
2077 icTagList tagList; /* with tagList */
2078 /* Original:
2079 icHeader header; The header
2080 icUInt32Number count; Number of tags in the profile
2081 icInt8Number data[icAny]; The tagTable and tagData */
2082/*
2083 * Data that follows is of the form
2084 *
2085 * icTag tagTable[icAny]; * The tag table
2086 * icInt8Number tagData[icAny]; * The tag data
2087 */
2088} icProfile;
2089
2090/*------------------------------------------------------------------------*/
2091/* Obsolete entries */
2092
2093/* icNamedColor was replaced with icNamedColor2 *
2094typedef struct {
2095 icUInt32Number vendorFlag; / Bottom 16 bits for IC use *
2096 icUInt32Number count; / Count of named colors *
2097 icInt8Number data[icAny]; / Named color data follows *
2098 *
2099 * Data that follows is of this form
2100 *
2101 * icInt8Number prefix[icAny]; * Prefix for the color name, max = 32
2102 * icInt8Number suffix[icAny]; * Suffix for the color name, max = 32
2103 * icInt8Number root1[icAny]; * Root name for first color, max = 32
2104 * icInt8Number coords1[icAny]; * Color coordinates of first color
2105 * icInt8Number root2[icAny]; * Root name for first color, max = 32
2106 * icInt8Number coords2[icAny]; * Color coordinates of first color
2107 * :
2108 * :
2109 * Repeat for root name and color coordinates up to (count-1)
2110 *
2111} icNamedColor; */
2112
2113/* icNamedColorType was replaced by icNamedColor2Type *
2114typedef struct {
2115 icTagBase base; / Signature, "ncol" *
2116 icNamedColor ncolor; / Named color data *
2117} icNamedColorType; */
2118
2119#endif /* icPROFILEHEADER_H */
2120
2121
2122
2123
#define ICUINT32TYPE
#define ICUINT64TYPE
#define ICHALFFLOATTYPE
#define ICINT32TYPE
#define ICINT64TYPE
unsigned int icUInt32Number
icCurveElemSignature
MPE Curve Set Curve signature.
@ icSigSegmentedCurve
@ icSigSampledCalculatorCurve
@ icSigSingleSampledCurve
unsigned char icUInt8Number
Number definitions.
icEnumLanguageCode
A not so exhaustive list of ISO 369 Language Codes Convenience definition - Not defined in ICC specif...
@ icLanguageCodeItalian
@ icLanguageCodeSweden
@ icLanguageCodeKorean
@ icLanguageCodeSpanish
@ icLanguageCodeEnglish
@ icLanguageCodeDanish
@ icLanguageCodeChinese
@ icLanguageCodeDutch
@ icLanguageCodeNorwegian
@ icLanguageCodeFrench
@ icLanguageCodeGerman
@ icLanguageCodeJapanese
@ icLanguageCodeFinnish
@ icLanguageCodeTurkish
icSignature icAcsSignature
MPE Future Extension Acs signature.
float icFloat32Number
icSparseMatrixType
@ icSparseMatrixUInt16
@ icSparseMatrixFloat32
@ icSparseMatrixFloat16
@ icSparseMatrixUInt8
icDMMediaType
DeviceSettingsType media encodings for Microsoft 'msft' platform.
@ icDMMediaGlossy
@ icDMMediaTransparancy
@ icDMMediaStandard
@ icDMMediaUser
icToneFunctionSignature
MPE Tone Map Function signature.
@ icSigToneMapFunction
unsigned short icUInt16Number
icDMHalftoneType
DeviceSettingsType media encodings for Microsoft 'msft' platform.
@ icDMDitherGrayscale
@ icDMDitherUser
@ icDMDitherNone
@ icDMDitherReserved6
@ icDMDitherFine
@ icDMDitherLineArt
@ icDMDitherReserved9
@ icDMDitherErrorDiffusion
@ icDMDitherReserved7
@ icDMDitherCoarse
@ icDMDitherReserved8
icUInt32Number icU16Fixed16Number
long icInt32Number
icEnumCountryCode
A not so exhaustive list of ISO 3166 country codes.
@ icCountryCodeNetherlands
@ icCountryCodeNorway
@ icCountryCodeGermany
@ icCountryCodeUSA
@ icCountryCodeJapan
@ icCountryCodeKorea
@ icCountryCodeTurkey
@ icCountryCodeUnitedKingdom
@ icCountryCodeItaly
@ icCountryCodeChina
@ icCountryCodeFinland
@ icCountryCodeTaiwan
@ icCountryCodeDenmark
@ icCountryCodeFrance
@ icCountryCodeSpain
icTechnologySignature
technology signature descriptions
@ icSigFilmWriter
@ icSigCRTDisplay
@ icSigOffsetLithography
@ icSigFlexography
@ icSigSilkscreen
@ icSigPhotographicPaperPrinter
@ icSigVideoMonitor
@ icSigMotionPictureFilmScanner
@ icSigElectrostaticPrinter
@ icSigPMDisplay
@ icSigGravure
@ icSigInkJetPrinter
@ icSigReflectiveScanner
@ icSigDigitalCamera
@ icSigVideoCamera
@ icSigDyeSublimationPrinter
@ icSigThermalWaxPrinter
@ icSigFilmScanner
@ icSigDigitalMotionPictureCamera
@ icSigPhotoCD
@ icSigMotionPictureFilmRecorder
@ icSigDigitalCinemaProjector
@ icSigPhotoImageSetter
@ icSigElectrophotographicPrinter
@ icSigProjectionTelevision
@ icSigAMDisplay
icProfileClassSignature
profileClass enumerations
@ icSigAbstractClass
@ icSigColorEncodingClass
@ icSigDisplayClass
@ icSigMaterialVisualizationClass
@ icSigOutputClass
@ icSigInputClass
@ icSigMaterialLinkClass
@ icSigColorSpaceClass
@ icSigNamedColorClass
@ icSigMaterialIdentificationClass
@ icSigLinkClass
icColorEncodingParamsMemberSignature
ColorEncodingParamsStructure (icSigColorEncodingParamsStruct) Member Tag signatures.
@ icSigCeptMediumWhitePointLuminanceMbr
@ icSigCeptViewingSurroundMbr
@ icSigCeptLumaChromaMatrixMbr
@ icSigCeptViewingFlareMbr
@ icSigCeptMediumBlackPointLuminanceMbr
@ icSigCeptImageBackgroundMbr
@ icSigCeptWhitePointLuminanceMbr
@ icSigCeptMediumWhitePointChromaticityMbr
@ icSigCeptImageStateMbr
@ icSigCeptRedPrimaryXYZMbr
@ icSigCeptInverseTransferFunctionMbr
@ icSigCeptValidRelativeLuminanceRangeMbr
@ icSigCeptTransferFunctionMbr
@ icSigCeptAmbientWhitePointChromaticityMbr
@ icSigCeptGreenPrimaryXYZMbr
@ icSigCeptWhitePointChromaticityMbr
@ icSigCeptBitDepthMbr
@ icSigCeptEncodingRangeMbr
@ icSigCeptBluePrimaryXYZMbr
@ icSigCeptAmbientIlluminanceMbr
@ icSigCeptMediumBlackPointChromaticityMbr
@ icSigCeptAmbientWhitePointLuminanceMbr
char icInt8Number
Signed numbers.
icIlluminant
Pre-defined illuminants, used in measurement and viewing conditions type.
@ icIlluminantF6
@ icIlluminantF8
@ icIlluminantF1
@ icIlluminantEquiPowerE
@ icIlluminantF11
@ icIlluminantF7
@ icIlluminantF2
@ icIlluminantF4
@ icIlluminantF3
@ icIlluminantD55
@ icIlluminantDaylight
@ icIlluminantB
@ icIlluminantA
@ icIlluminantF9
@ icIlluminantBlackBody
@ icIlluminantUnknown
@ icIlluminantD65
@ icIlluminantF10
@ icIlluminantD93
@ icIlluminantD50
@ icIlluminantC
@ icIlluminantF5
@ icIlluminantF12
icMeasurementFlare
Other enums.
@ icFlare100
@ icFlare0
icColorantEncoding
Colorant and Phosphor Encodings used in chromaticity type.
@ icColorantEBU
@ icColorantUnknown
@ icColorantITU
@ icColorantSMPTE
@ icColorantP22
icMeasurementInfoMemberSignature
MeasurementInfoStructure (icSigMeasurementInfoStruct) Member Tag signatures.
@ icSigMeasBackingMbr
@ icSigMeasFlareMbr
@ icSigMeasGeometryMbr
@ icSigMeasModeMbr
@ icSigMeasIlluminantRangeMbr
@ icSigMeasIlluminantMbr
icUInt16Number icCountryCode
icCurveSegSignature
MPE Curve segment Signatures.
@ icSigSampledCurveSeg
@ icSigFormulaCurveSeg
icUInt16Number icFloat16Number
IEEE float storage numbers.
icUInt16Number icUnicodeChar
16-bit unicode characters
icMaterialColorSignature
@ icSigMCSData
@ icSigNoMCSData
double icFloat64Number
icSigBRDFType
BRDF type signatures.
@ icSigBrdfTypeLafortuneMono1Lobe
@ icSigBrdfTypeCookTorranceMono2Lobe
@ icSigBrdfTypeLafortuneMono2Lobe
@ icSigBrdfTypeCookTorranceColor2Lobe
@ icSigBrdfTypeLafortuneColor3Lobe
@ icSigBrdfTypeCookTorranceMono3Lobe
@ icSigBrdfTypeBlinnPhongMono
@ icSigBrdfTypeCookTorranceColor1Lobe
@ icSigBrdfTypeLafortuneColor2Lobe
@ icSigBrdfTypeCookTorranceMono1Lobe
@ icSigBrdfTypeLafortuneMono3Lobe
@ icSigBrdfTypeLafortuneColor1Lobe
@ icSigBrdfTypeWardColor
@ icSigBrdfTypeWardMono
@ icSigBrdfTypeCookTorranceColor3Lobe
@ icSigBrdfTypeBlinnPhongColor
icElemTypeSignature
Multi-Processing Element type signatures.
@ icSigEmissionMatrixElemType
@ icSigBAcsElemType
@ icSigEmissionCLUTElemType
@ icSigReflectanceCLUTElemType
@ icSigCurveSetElemType
@ icSigCLutElemType
@ icSigToneMapElemType
@ icSigSparseMatrixElemType
@ icSigReflectanceObserverElemType
@ icSigExtCLutElemType
@ icSigTintArrayElemType
@ icSigXYZToJabElemType
@ icSigJabToXYZElemType
@ icSigMatrixElemType
@ icSigEmissionObserverElemType
@ icSigInvEmissionMatrixElemType
@ icSigEAcsElemType
@ icSigCalculatorElemType
short icInt16Number
icColorSpaceSignature
Color Space Signatures.
@ icSig14colorData
@ icSigLabData
@ icSig2colorData
@ icSigLuvData
@ icSig8colorData
@ icSigMCHCData
@ icSigNoColorData
@ icSigMCH4Data
@ icSig10colorData
@ icSig7colorData
@ icSig9colorData
@ icSigMCH6Data
@ icSig1colorData
@ icSigMCH8Data
@ icSigMCH7Data
@ icSigXYZData
@ icSig13colorData
@ icSigSrcMCSChannelData
@ icSig6colorData
@ icSigMCH5Data
@ icSigMCH9Data
@ icSigMCH1Data
@ icSigNamedData
@ icSigMCHEData
@ icSigCmykData
@ icSigNChannelData
@ icSigMCH3Data
@ icSigMCH2Data
@ icSigRgbData
@ icSigHlsData
@ icSigMCHAData
@ icSig4colorData
@ icSigMCHDData
@ icSigYCbCrData
@ icSig12colorData
@ icSig11colorData
@ icSigMCHBData
@ icSigMCHFData
@ icSigCmyData
@ icSigGrayData
@ icSig15colorData
@ icSig3colorData
@ icSigHsvData
@ icSigYxyData
@ icSig5colorData
unsigned long icUInt32Number
icUInt32Number icSignature
icUInt16Number icLanguageCode
icSingleSampledCurveType
Enum for defining type of Single Sampled Curve.
@ icExtendSingleSampledCurve
@ icClipSingleSampledCurve
#define icCompressedData
icMeasurementUnitSig
Measurement Unit Signatures used in ResponseCurveSet16Type.
@ icSigStatusI
@ icSigStatusE
@ icSigDNNP
@ icSigStatusA
@ icSigDN
@ icSigStatusT
@ icSigDNP
@ icSigDNN
@ icSigStatusM
icImageEncodingType
@ icPngImageType
@ icTiffImageType
icNamedColorlMemberSignature
NamedColorStructure (icSigNamedColorStruct) Member Tag signatures.
@ icSigNmclSpectralOverBlackMbr
@ icSigNmclPcsDataMbr
@ icSigNmclNameMbr
@ icSigNmclBrdfSpectralParamsMbr
@ icSigNmclSpectralOverGrayMbr
@ icSigNmclLocalizedNameMbr
@ icSigNmclTintMbr
@ icSigNmclBrdfSpectralMbr
@ icSigNmclBrdfColorimetricMbr
@ icSigNmclDeviceDataMbr
@ icSigNmclNormalMapMbr
@ icSigNmclSpectralDataMbr
@ icSigNmclBrdfColorimetricParamsMbr
icTagTypeSignature
type signatures
@ icSigSegmentedCurveType
@ icSigCicpType
@ icSigSpectralDataInfoType
@ icSigUInt8ArrayType
@ icSigDataType
@ icSigUtf8TextType
@ icSigUInt16ArrayType
@ icSigProfileSequceIdType
@ icSigProfileSequenceDescType
@ icSigEmbeddedProfileType
@ icSigTagArrayType
@ icSigZipXMLType
@ icSigMultiProcessElementType
@ icSigXYZArrayType
@ icSigMeasurementType
@ icSigTagStructType
@ icSigUndefinedType
@ icSigSparseMatrixArrayType
@ icSigEmbeddedHeightImageType
@ icSigFloat16ArrayType
@ icSigParametricCurveType
@ icSigLut8Type
@ icSigMultiLocalizedUnicodeType
@ icSigXYZType
@ icSigLutBtoAType
@ icSigResponseCurveSet16Type
@ icSigS15Fixed16ArrayType
@ icSigUtf16TextType
@ icSigColorantTableType
@ icSigViewingConditionsType
@ icSigTextDescriptionType
@ icSigEmbeddedNormalImageType
@ icSigCurveType
@ icSigColorantOrderType
@ icSigDateTimeType
@ icSigFloat64ArrayType
@ icSigLut16Type
@ icSigScreeningType
@ icSigUInt64ArrayType
@ icSigTextType
@ icSigSpectralViewingConditionsType
@ icSigZipXmlType
@ icSigNamedColor2Type
@ icSigDeviceSettingsType
@ icSigU16Fixed16ArrayType
@ icSigChromaticityType
@ icSigSignatureType
@ icSigZipUtf8TextType
@ icSigFloat32ArrayType
@ icSigUcrBgType
@ icSigCrdInfoType
@ icSigLutAtoBType
@ icSigDictType
@ icSigUInt32ArrayType
@ icSigGamutBoundaryDescType
icStructSignature
Tag Structure type signatures.
@ icSigMeasurementInfoStruct
@ icSigColorantInfoStruct
@ icSigTintZeroStruct
@ icSigNamedColorStruct
@ icSigBRDFStruct
@ icSigUndefinedStruct
@ icSigProfileInfoStruct
@ icSigColorEncodingParamsSruct
icDataBlockType
@ icCompressedUtfData
@ icCompressedAsciiData
@ icCompressedBinaryData
@ icUtfData
@ icBinaryData
@ icAsciiData
icUInt32Number icUInt64Number[2]
icMSFTDevSetSig
Note: The next three enum types are for DeviceSettingType structures supported by V2 profiles.
@ icMSFTDevSetResolution
@ icMSFTDevSetMediaHalftone
@ icMSFTDevSetMediaType
icSpectralColorSignature
icSpectralColorSignature enumerations
@ icSigReflectanceSpectralData
@ icSigTransmisionSpectralData
@ icSigNoSpectralData
@ icSigBiSpectralReflectanceData
@ icSigRadiantSpectralData
@ icSigSparseMatrixReflectanceData
icInt32Number icInt64Number[2]
icPlatformSignature
Platform Signatures.
@ icSigSGI
@ icSigTaligent
@ icSigMacintosh
@ icSigUnkownPlatform
@ icSigSolaris
@ icSigMicrosoft
#define icAny
Define used to indicate that this is a variable length array.
icMeasurementGeometry
Measurement Geometry, used in the measurmentType tag.
@ icGeometry045or450
@ icGeometry0dord0
@ icGeometryUnknown
icArraySignature
Tag Array type signatures.
@ icSigColorantInfoArray
@ icSigNamedColorArray
@ icSigUtf8TextTypeArray
@ icSigUndefinedArray
icColorimetricIntentImageStateSignature
Colorimetric Intent Image State Gamut Signatures.
@ icSigSceneColorimetryEstimates
@ icSigReflectionPrintOutputColorimetry
@ icSigFocalPlaneColorimetryEstimates
@ icSigReflectionHardcopyOriginalColorimetry
@ icSigSceneAppearanceEstimates
icTintZeroMemberSignature
TintZeroStructure (icSigTintZeroStruct) Member Tag signatures.
@ icSigTnt0SpectralOverBlackMbr
@ icSigTnt0SpectralDataMbr
@ icSigTnt0DeviceDataMbr
@ icSigTnt0PcsDataMbr
@ icSigTnt0SpectralOverGrayMbr
icSigBRDFFunction
BRDF function signatures.
@ icSigBRDFFunctionColor
@ icSigBRDFFunctionMonochrome
icSpotShape
Different Spot Shapes currently defined, used for screeningType.
@ icSpotShapeCross
@ icSpotShapeDiamond
@ icSpotShapeLine
@ icSpotShapePrinterDefault
@ icSpotShapeEllipse
@ icSpotShapeSquare
@ icSpotShapeRound
@ icSpotShapeUnknown
icInt32Number icS15Fixed16Number
Fixed numbers.
icReferenceMediumGamutSignature
Rendering Intent Gamut Signatures.
@ icSigPerceptualReferenceMediumGamut
icTagSignature
public tags and sizes
@ icSigEmbeddedV5ProfileTag
@ icSigBToD0Tag
@ icSigGrayTRCTag
@ icSigSpectralViewingConditionsTag
@ icSigBRDFMToB1Tag
@ icSigBRDFMToB3Tag
@ icSigBrdfColorimetricParameter3Tag
@ icSigPerceptualRenderingIntentGamutTag
@ icSigBToA2Tag
@ icSigDeviceMfgDescTag
@ icSigGamutBoundaryDescription3Tag
@ icSigColorantOrderTag
@ icSigBRDFDToB0Tag
@ icSigViewingConditionsTag
@ icSigAToB3Tag
@ icSigBlueMatrixColumnTag
@ icSigColorimetricIntentImageStateTag
@ icSigColorantInfoTag
@ icSigBrdfColorimetricParameter2Tag
@ icSigHToS3Tag
@ icSigGamutBoundaryDescription2Tag
@ icSigGamutBoundaryDescription1Tag
@ icSigGamutBoundaryDescription0Tag
@ icSigMaterialDefaultValuesTag
@ icSigColorSpaceNameTag
@ icSigMToS3Tag
@ icSigBrdfSpectralParameter0Tag
@ icSigGreenTRCTag
@ icSigMeasurementTag
@ icSigCrdInfoTag
@ icSigPs2CSATag
@ icSigDeviceSettingsTag
@ icSigBrdfSpectralParameter1Tag
@ icSigBToD2Tag
@ icSigAToM0Tag
@ icSigPreview1Tag
@ icSigPs2CRD0Tag
@ icSigSpectralDataInfoTag
@ icSigPs2RenderingIntentTag
@ icSigCicpTag
@ icSigHToS2Tag
@ icSigMetaDataTag
@ icSigScreeningDescTag
@ icSigSaturationRenderingIntentGamutTag
@ icSigMToB0Tag
@ icSigAToB0Tag
@ icSigDeviceModelDescTag
@ icSigCxFTag
@ icSigScreeningTag
@ icSigMToB3Tag
@ icSigBrdfSpectralParameter3Tag
@ icSigBToA1Tag
@ icSigProfileSequceIdTag
@ icSigColorantTableTag
@ icSigDToB3Tag
@ icSigAToB2Tag
@ icSigBRDFAToB1Tag
@ icSigBRDFAToB2Tag
@ icSigProfileSequenceDescTag
@ icSigCustomToStandardPccTag
@ icSigBRDFAToB0Tag
@ icSigDataTag
@ icSigDToB0Tag
@ icSigSpectralWhitePointTag
@ icSigBToD3Tag
@ icSigBToA0Tag
@ icSigMToS0Tag
@ icSigRedTRCTag
@ icSigMToS2Tag
@ icSigHToS1Tag
@ icSigBToD1Tag
@ icSigPs2CRD1Tag
@ icSigBlueTRCTag
@ icSigSurfaceMapTag
@ icSigMToB1Tag
@ icSigHToS0Tag
@ icSigProfileDescriptionTag
@ icSigPs2CRD2Tag
@ icSigColorantInfoOutTag
@ icSigRedColorantTag
@ icSigGreenMatrixColumnTag
@ icSigMediaBlackPointTag
@ icSigCharTargetTag
@ icSigCopyrightTag
@ icSigOutputResponseTag
@ icSigChromaticAdaptationTag
@ icSigMediaWhitePointTag
@ icSigBRDFMToS3Tag
@ icSigViewingCondDescTag
@ icSigBRDFAToB3Tag
@ icSigAToB1Tag
@ icSigPs2CRD3Tag
@ icSigColorantTableOutTag
@ icSigColorEncodingParamsTag
@ icSigBToA3Tag
@ icSigColorantOrderOutTag
@ icSigBrdfSpectralParameter2Tag
@ icSigBRDFMToS1Tag
@ icSigChromaticityTag
@ icSigBRDFMToS0Tag
@ icSigCalibrationDateTimeTag
@ icSigDateTimeTag
@ icSigPreview0Tag
@ icSigUcrBgTag
@ icSigNamedColor2Tag
@ icSigReferenceNameTag
@ icSigGreenColorantTag
@ icSigNamedColorTag
@ icSigDToB2Tag
@ icSigStandardToCustomPccTag
@ icSigLuminanceTag
@ icSigRedMatrixColumnTag
@ icSigGamutTag
@ icSigMToA0Tag
@ icSigTechnologyTag
@ icSigMToS1Tag
@ icSigPrintConditionTag
@ icSigDToB1Tag
@ icSigBRDFDToB1Tag
@ icSigBrdfColorimetricParameter0Tag
@ icSigBRDFMToB2Tag
@ icSigMaterialTypeArrayTag
@ icSigBRDFMToS2Tag
@ icSigBRDFDToB2Tag
@ icSigPreview2Tag
@ icSigBlueColorantTag
@ icSigBrdfColorimetricParameter1Tag
@ icSigBRDFMToB0Tag
@ icSigMToB2Tag
@ icSigBRDFDToB3Tag
icRenderingIntent
Rendering Intents, used in the profile header.
@ icRelative
@ icPerceptual
@ icRelativeColorimetric
@ icAbsolute
@ icAbsoluteColorimetric
@ icSaturation
icValueEncodingType
Enum to identify single segment curve / clut2 element storage type.
@ icValueTypeFloat16
@ icValueTypeUInt8
@ icValueTypeUInt16
@ icValueTypeFloat32
icProfileInfoMemberSignature
ProfileInfoStructure (icSigProfileInfoStruct) Member Tag signatures.
@ icSigPinfManufacturerSigMbr
@ icSigPinfTechnologyMbr
@ icSigPinfModelDescMbr
@ icSigPinfRenderTransformMbr
@ icSigPinfManufacturerDescMbr
@ icSigPinfAttributesMbr
@ icSigPinfProfileDescMbr
@ icSigPinfModelSigMbr
@ icSigPinfProfileIDMbr
icColorantInfoMemberSignature
ColorantInfoStructure (icSigColorantInfoStruct) Member Tag signatures.
@ icSigCinfNameMbr
@ icSigCinfPcsDataMbr
@ icSigCinfSpectralDataMbr
@ icSigCinfLocalizedNameMbr
icBrdfMemberSignature
BRDFStructure (icSigBrdfStruct) Member Tag signatures.
@ icSigBrdfFunctionMbr
@ icSigBrdfLightTransformMbr
@ icSigBrdfOutputTransformMbr
@ icSigBrdfTypeMbr
@ icSigBrdfParamsPerChannelMbr
@ icSigBrdfTransformMbr
icStandardObserver
Standard Observer, used in the measurmentType tag.
@ icStdObsUnknown
@ icStdObs1964TenDegrees
@ icStdObs1931TwoDegrees
icSigCmmEnvVar
@ icSigTrueVar
@ icSigNotDefVar
icCmmSignature
CMM signatures from the signature registry (as of Mar 6, 2018)
@ icSigDemoIccMAX
@ icSigAgfa
@ icSigColorGearC
@ icSigColorGear
@ icSigTheImagingFactory
@ icSigLogoSync
@ icSigWindowsCMS
@ icSigRolfGierling
@ icSigColorGearLite
@ icSigKonicaMinolta
@ icSigUnknownCmm
@ icSigKodak
@ icSigSampleICC
@ icSigArgyllCMS
@ icSigHarlequinRIP
@ icSigToshiba
@ icSigExactScan
@ icSigHeidelberg
@ icSigOnyxGraphics
@ icSigMutoh
@ icSigEFI
@ icSigZoran
@ icSigFujiFilm
@ icSigAdobe
@ icSigLittleCMS
@ icSigRefIccMAX
@ icSigVivo
@ icSigApple
@ icSigWareToGo
icUInt8Number pad3
icUInt8Number prec
icUInt8Number pad1
icUInt8Number pad2
ChromaticAdaptation type.
xy Chromaticity Number
icU16Fixed16Number x
icU16Fixed16Number y
ColorantOrder type.
icUInt32Number count
ColorantOrderType type.
icColorantOrder order
ColorantTable Entry.
ColorantTable.
icUInt32Number count
ColorantTableType type.
icColorantTable table
CrdInfo type.
icUInt32Number count
CRDInfoType where [0] is the CRD product name count and string and [1] -[5] are the rendering intents...
icUInt32Number count
icDataBlockType dataFlag
The base date time number.
icUInt16Number year
icUInt16Number month
icUInt16Number minutes
icUInt16Number seconds
icUInt16Number hours
icUInt16Number day
icDateTimeNumber date
Profile sequence structure.
icSignature deviceMfg
icTechnologySignature technology
icSignature deviceModel
icUInt64Number attributes
Floting point XYZ.
icFloat32Number Z
icFloat32Number Y
icFloat32Number X
The Profile header.
icSpectralRange spectralRange
icXYZNumber illuminant
icUInt32Number renderingIntent
icUInt64Number attributes
icColorSpaceSignature colorSpace
icProfileClassSignature deviceClass
icSignature deviceSubClass
icSignature cmmId
icSpectralColorSignature spectralPCS
icDateTimeNumber date
icPlatformSignature platform
icSignature creator
icSignature magic
icUInt32Number flags
icUInt32Number version
icMaterialColorSignature mcs
icProfileID profileID
icUInt32Number size
icSpectralRange biSpectralRange
icSignature manufacturer
icUInt32Number model
icColorSpaceSignature pcs
Illuminant Vector.
icUInt16Number reserved
icSpectralRange range
Int16 Array.
Int32 Array.
Int64 Array.
Int8 Array.
icS15Fixed16Number e01
icUInt16Number outputEnt
icS15Fixed16Number e21
icUInt8Number inputChan
icS15Fixed16Number e22
icS15Fixed16Number e02
icS15Fixed16Number e20
icS15Fixed16Number e10
icS15Fixed16Number e11
icS15Fixed16Number e12
icUInt16Number inputEnt
icS15Fixed16Number e00
icUInt8Number outputChan
icInt8Number pad
icUInt8Number clutPoints
lut8, input & output tables are always 256 bytes in length
icS15Fixed16Number e22
icUInt8Number outputChan
icUInt8Number clutPoints
icS15Fixed16Number e01
icS15Fixed16Number e10
icS15Fixed16Number e00
icS15Fixed16Number e20
icUInt8Number inputChan
icS15Fixed16Number e21
icInt8Number pad
icS15Fixed16Number e12
icS15Fixed16Number e11
icS15Fixed16Number e02
lut8Type, input & output tables are always 256 bytes in length
icUInt8Number pad2
icUInt32Number offsetM
icUInt8Number outputChan
icUInt8Number pad1
icUInt8Number inputChan
icUInt32Number offsetA
icUInt32Number offsetB
icUInt32Number offsetMat
icUInt32Number offsetC
lutAtoBType new format
icUInt32Number offsetC
icUInt8Number outputChan
icUInt32Number offsetB
icUInt32Number offsetA
icUInt32Number offsetMat
icUInt8Number pad1
icUInt8Number pad2
icUInt32Number offsetM
icUInt8Number inputChan
lutBtoAType new format
Measurement Data.
icXYZNumber backing
icMeasurementGeometry geometry
icMeasurementFlare flare
icStandardObserver stdObserver
icIlluminant illuminant
Measurement Type.
icMeasurement measurement
MultiLocalizedUnicodeEntry type.
icUInt16Number languageCode
icUInt16Number countryCode
icUInt32Number off
icUInt32Number len
MultiLocalizedUnicode type.
Named color.
icNamedColor2 takes the place of icNamedColor
icUInt32Number count
icUInt32Number nDeviceCoords
icUInt32Number vendorFlag
Named color type.
observer matrix
icSpectralRange range
icUInt16Number reserved
icS15Fixed16Number c
icS15Fixed16Number e
icS15Fixed16Number a
icS15Fixed16Number d
icS15Fixed16Number gamma
icS15Fixed16Number b
icS15Fixed16Number f
ParametricCurveFullType.
icParametricCurveFull curve
Parametric Curve.
icS15Fixed16Number gamma
icUInt16Number funcType
ParametricCurveType.
icParametricCurve curve
icUInt32Number offset
icUInt32Number size
A profile, we can't use icTagList here because its not at the end of the structure.
icTagList tagList
icHeader header
Profile sequence description.
Profile sequence description type.
icProfileSequenceDesc desc
response16Number
icUInt16Number deviceCode
icS15Fixed16Number measurementValue
icUInt16Number reserved
s15Fixed16 Array
icS15Fixed16Array data
Screening Data.
icSpotShape spotShape
icS15Fixed16Number frequency
icS15Fixed16Number angle
icUInt32Number channels
icUInt32Number screeningFlag
icSignature signature
spectral range
icUInt16Number steps
icFloat16Number start
icFloat16Number end
Tag Type definitions.
icTagTypeSignature sig
Lists of tags, tags, profile header and profile structure.
icUInt32Number offset
icTagSignature sig
icUInt32Number size
A Structure that may be used independently for a list of tags.
icUInt32Number count
textDescription
icUInt32Number count
textDescriptionType
icTextDescription desc
Text Data.
u16Fixed16 Array
icU16Fixed16Array data
UInt64 Array.
UInt8 Array.
Structure describing either a UCR or BG curve.
icUInt32Number count
Under color removal, black generation.
Under color removal, black generation type.
viewingConditionsType
icIlluminant stdIluminant
viewingConditionsType
icViewingCondition view
icS15Fixed16Number Y
icS15Fixed16Number Z
icS15Fixed16Number X
icTagBase base
icXYZArray data
Profile ID.