Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccUtil.h
Go to the documentation of this file.
1/** @file
2 File: IccUtil.h
3
4 Contains: Implementation of utility classes/functions
5
6 Version: V1
7
8 Copyright: � see ICC Software License
9*/
10
11/*
12 * The ICC Software License, Version 0.2
13 *
14 *
15 * Copyright (c) 2003-2012 The International Color Consortium. All rights
16 * reserved.
17 *
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions
20 * are met:
21 *
22 * 1. Redistributions of source code must retain the above copyright
23 * notice, this list of conditions and the following disclaimer.
24 *
25 * 2. Redistributions in binary form must reproduce the above copyright
26 * notice, this list of conditions and the following disclaimer in
27 * the documentation and/or other materials provided with the
28 * distribution.
29 *
30 * 3. In the absence of prior written permission, the names "ICC" and "The
31 * International Color Consortium" must not be used to imply that the
32 * ICC organization endorses or promotes products derived from this
33 * software.
34 *
35 *
36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
40 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47 * SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This software consists of voluntary contributions made by many
51 * individuals on behalf of the The International Color Consortium.
52 *
53 *
54 * Membership in the ICC is encouraged when this software is used for
55 * commercial purposes.
56 *
57 *
58 * For more information on The International Color Consortium, please
59 * see <http://www.color.org/>.
60 *
61 *
62 */
63
64//////////////////////////////////////////////////////////////////////
65// HISTORY:
66//
67// -Initial implementation by Max Derhak 5-15-2003
68//
69//////////////////////////////////////////////////////////////////////
70
71#ifndef _ICCUTIL_H
72#define _ICCUTIL_H
73
74#include "IccDefs.h"
75#include "IccProfLibConf.h"
76#include <string>
77#include <limits>
78
79#ifdef USEREFICCMAXNAMESPACE
80namespace refIccMAX {
81#endif
82
83ICCPROFLIB_API void* icRealloc(void *ptr, size_t size);
84
85#define icPiNum 3.14159265358979323846
86#define icPosInfinity (std::numeric_limits<icFloatNumber>::infinity())
87#define icNegInfinity (-std::numeric_limits<icFloatNumber>::infinity())
88#define icNotANumber (std::numeric_limits<icFloatNumber>::quiet_NaN())
89#define icNotZero(v) ((v)>1.0e-8 || (v)<-1.0e-8)
90
91ICCPROFLIB_API bool icIsNear(icFloatNumber v1, icFloatNumber v2, icFloatNumber nearRange = 1.0e-8);
92
93ICCPROFLIB_API double icRoundOffset(double v);
94
97
99 int nIndex, int nColors, const icChar *szUnknown);
100ICCPROFLIB_API void icColorValue(icChar *szValue, icFloatNumber nValue,
101 icColorSpaceSignature csSig, int nIndex, bool bUseLegacy=false);
102
104
107 const icFloatNumber *l,
108 const icFloatNumber *r);
110 const icFloatNumber *m,
111 const icFloatNumber *v);
112
115
118
121
124
127
128/*0 to 255 <-> 0.0 to 1.0*/
131
132/*0 to 65535 <-> 0.0 to 1.0*/
135
136/*0 to 255 <-> -128.0 to 127.0*/
139
142
145
148
149ICCPROFLIB_API void icXYZtoLab(icFloatNumber *Lab, const icFloatNumber *XYZ=NULL, const icFloatNumber *WhiteXYZ=NULL);
150ICCPROFLIB_API void icLabtoXYZ(icFloatNumber *XYZ, const icFloatNumber *Lab=NULL, const icFloatNumber *WhiteXYZ=NULL);
151
154
157
160
162
164
165ICCPROFLIB_API bool icValidTagPos(const icPositionNumber& pos, icUInt32Number nTagHeaderSize, icUInt32Number nTagSize, bool bAllowEmpty=false);
166ICCPROFLIB_API bool icValidOverlap(const icPositionNumber& pos1, const icPositionNumber& pos2, bool bAllowSame=true);
167
168/**Floating point encoding of Lab in PCS is in range 0.0 to 1.0 */
169///Here are some conversion routines to convert to regular Lab encoding
172
173/** Floating point encoding of XYZ in PCS is in range 0.0 to 1.0
174 (Note: X=1.0 is encoded as about 0.5)*/
175///Here are some conversion routines to convert to regular XYZ encoding
178
179
180ICCPROFLIB_API void icMemDump(std::string &sDump, void *pBuf, icUInt32Number nNum);
181ICCPROFLIB_API void icMatrixDump(std::string &sDump, icS15Fixed16Number *pMatrix);
182ICCPROFLIB_API const icChar* icGetSig(icChar *pBuf, icUInt32Number sig, bool bGetHexVal=true);
183ICCPROFLIB_API const icChar* icGet16bitSig(icChar* pBuf, icUInt16Number sig, bool bGetHexVal=true);
185ICCPROFLIB_API const icChar* icGetColorSig(icChar *pBuf, icUInt32Number sig, bool bGetHexVal=true);
187
188#define icUtf8StrCmp(x, y) strcmp((const char*)x, (const char*)y)
189
194
199
201
203
204ICCPROFLIB_API extern const char *icMsgValidateWarning;
208
209#ifdef ICC_BYTE_ORDER_LITTLE_ENDIAN
210inline void icSwab16Ptr(void *pVoid)
211{
212 icUInt8Number *ptr = (icUInt8Number*)pVoid;
213 icUInt8Number tmp;
214
215 tmp = ptr[0]; ptr[0] = ptr[1]; ptr[1] = tmp;
216}
217
218inline void icSwab16Array(void *pVoid, int num)
219{
220 icUInt8Number *ptr = (icUInt8Number*)pVoid;
221 icUInt8Number tmp;
222
223 while (num>0) {
224 tmp = ptr[0]; ptr[0] = ptr[1]; ptr[1] = tmp;
225 ptr += 2;
226 num--;
227 }
228}
229
230inline void icSwab32Ptr(void *pVoid)
231{
232 icUInt8Number *ptr = (icUInt8Number*)pVoid;
233 icUInt8Number tmp;
234
235 tmp = ptr[0]; ptr[0] = ptr[3]; ptr[3] = tmp;
236 tmp = ptr[1]; ptr[1] = ptr[2]; ptr[2] = tmp;
237}
238
239inline void icSwab32Array(void *pVoid, int num)
240{
241 icUInt8Number *ptr = (icUInt8Number*)pVoid;
242 icUInt8Number tmp;
243
244 while (num>0) {
245 tmp = ptr[0]; ptr[0] = ptr[3]; ptr[3] = tmp;
246 tmp = ptr[1]; ptr[1] = ptr[2]; ptr[2] = tmp;
247 ptr += 4;
248 num--;
249 }
250
251}
252
253inline void icSwab64Ptr(void *pVoid)
254{
255 icUInt8Number *ptr = (icUInt8Number*)pVoid;
256 icUInt8Number tmp;
257
258 tmp = ptr[0]; ptr[0] = ptr[7]; ptr[7] = tmp;
259 tmp = ptr[1]; ptr[1] = ptr[6]; ptr[6] = tmp;
260 tmp = ptr[2]; ptr[2] = ptr[5]; ptr[5] = tmp;
261 tmp = ptr[3]; ptr[3] = ptr[4]; ptr[4] = tmp;
262}
263
264inline void icSwab64Array(void *pVoid, int num)
265{
266 icUInt8Number *ptr = (icUInt8Number*)pVoid;
267 icUInt8Number tmp;
268
269 while (num>0) {
270 tmp = ptr[0]; ptr[0] = ptr[7]; ptr[7] = tmp;
271 tmp = ptr[1]; ptr[1] = ptr[6]; ptr[6] = tmp;
272 tmp = ptr[2]; ptr[2] = ptr[5]; ptr[5] = tmp;
273 tmp = ptr[3]; ptr[3] = ptr[4]; ptr[4] = tmp;
274 ptr += 8;
275 num--;
276 }
277
278}
279#else //!ICC_BYTE_ORDER_LITTLE_ENDIAN
280#define icSwab16Ptr(flt)
281#define icSwab16Array(flt, n)
282#define icSwab32Ptr(flt)
283#define icSwab32Array(flt, n)
284#define icSwab64Ptr(flt)
285#define icSwab64Array(flt, n)
286#endif
287
288#define icSwab16(flt) icSwab16Ptr(&flt)
289#define icSwab32(flt) icSwab32Ptr(&flt)
290#define icSwab64(flt) icSwab64Ptr(&flt)
291
292
293/**
294 **************************************************************************
295 * Type: Class
296 *
297 * Purpose:
298 * This is a utility class which can be used to get profile info
299 * for printing. The member functions are used to convert signatures
300 * and other enum values to character strings for printing.
301 **************************************************************************
302 */
304public:
305 CIccInfo();
306 virtual ~CIccInfo();
307 //Signature values
308 const icChar *GetVersionName(icUInt32Number val);
309 const icChar *GetSubClassVersionName(icUInt32Number val);
310 const icChar *GetDeviceAttrName(icUInt64Number val);
311 const icChar *GetProfileFlagsName(icUInt32Number val, bool bCheckMCS=false);
312
313 const icChar *GetTagSigName(icTagSignature sig);
314 const icChar *GetTechnologySigName(icTechnologySignature sig);
315 const icChar *GetTagTypeSigName(icTagTypeSignature sig);
316 const icChar *GetStructSigName(icStructSignature sig);
317 const icChar *GetArraySigName(icArraySignature sig);
318 const icChar *GetColorSpaceSigName(icColorSpaceSignature sig);
319 const icChar *GetProfileClassSigName(icProfileClassSignature sig);
320 const icChar *GetPlatformSigName(icPlatformSignature sig);
321 const icChar *GetCmmSigName(icCmmSignature sig);
322 const icChar *GetReferenceMediumGamutSigNameName(icReferenceMediumGamutSignature sig);
323 const icChar *GetColorimetricIntentImageStateName(icColorimetricIntentImageStateSignature sig);
324 const icChar *GetSpectralColorSigName(icSpectralColorSignature sig);
325 const icChar *GetElementTypeSigName(icElemTypeSignature sig);
326
327 const icChar *GetSigName(icUInt32Number val);
328
329 const icChar *GetPathEntrySigName(icUInt32Number val);
330
331 std::string GetSigPathName(std::string sigPath);
332
333 //Other values
334 const icChar *GetMeasurementFlareName(icMeasurementFlare val);
335 const icChar *GetMeasurementGeometryName(icMeasurementGeometry val);
336 const icChar *GetRenderingIntentName(icRenderingIntent val, bool bIsV5=false);
337 const icChar *GetSpotShapeName(icSpotShape val);
338 const icChar *GetStandardObserverName(icStandardObserver val);
339 const icChar *GetIlluminantName(icIlluminant val);
340
341 const icChar *GetUnknownName(icUInt32Number val);
342 const icChar *GetMeasurementUnit(icSignature sig);
343 const icChar *GetProfileID(icProfileID *profileID);
344 const icChar *GetColorantEncoding(icColorantEncoding colorant);
345
346 bool IsProfileIDCalculated(icProfileID *profileID);
347 icValidateStatus CheckData(std::string &sReport, const icDateTimeNumber &dateTime, std::string sDesc="");
348 icValidateStatus CheckData(std::string &sReport, const icXYZNumber &XYZ, std::string sDesc="");
349 icValidateStatus CheckData(std::string &sReport, const icFloatXYZNumber &XYZ, std::string sDesc="");
350 icValidateStatus CheckData(std::string &sReport, const icSpectralRange &range, std::string sDesc="");
351
352 icValidateStatus CheckLuminance(std::string &sReport, const icFloatXYZNumber &XYZ, std::string sDesc="");
353
354 bool IsValidSpace(icColorSpaceSignature sig);
355 bool IsValidSpectralSpace(icColorSpaceSignature sig);
356
357protected:
358 icChar m_szStr[128];
359 icChar m_szSigStr[128];
360 std::string *m_str;
361};
362
363/**
364 **************************************************************************
365 * Type: Class
366 *
367 * Purpose:
368 * This is a utility class which can be for pixel sample storage.
369 * It features constant allocation access time when the pixel buffer size
370 * is less thatn icDefaultPixelBufSize
371 **************************************************************************
372 */
373#define icDefaultPixelBufSize 100
375{
376public:
379 icFloatNumber &operator[](int nPos) { return m_pixel[nPos]; }
380 icFloatNumber *get() { return m_pixel;}
381
382 operator icFloatNumber *() { return m_pixel; }
383 operator void *() { return m_pixel; }
384
385protected:
388};
389
390
391
392/**
393**************************************************************************
394* Type: Class
395*
396* Purpose:
397* Interface for performing Cmm Environment Variable Lookup
398**************************************************************************
399*/
401{
402public:
404
407};
408
409
410
411
413
414#ifdef USEREFICCMAXNAMESPACE
415} //namespace refIccMAX
416#endif
417
418#endif
icArraySignature sig
icFloatNumber icD50XYZ[3]
Definition IccUtil.cpp:782
File: IccDefs.h
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
icUInt16Number icU1Fixed15Number
Definition IccDefs.h:82
icUInt16Number icU8Fixed8Number
Definition IccDefs.h:83
char icChar
Definition IccDefs.h:109
icValidateStatus
Definition IccDefs.h:118
File: IccProfLibConf.h.
#define ICCPROFLIB_API
const icChar * szName
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
std::string icGetSigPath(icUInt32Number nSig)
Definition IccUtil.cpp:1191
icU1Fixed15Number icDtoUSF(icFloatNumber num)
Definition IccUtil.cpp:587
const icChar * icGetColorSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
Definition IccUtil.cpp:1088
icFloatNumber icU8toAB(icUInt8Number num)
Definition IccUtil.cpp:777
icFloatNumber icD50XYZxx[3]
Definition IccUtil.cpp:783
const char * icMsgValidateWarning
Definition IccUtil.cpp:90
icFloatNumber icU16toF(icUInt16Number num)
Definition IccUtil.cpp:759
icUInt8Number icABtoU8(icFloatNumber num)
Definition IccUtil.cpp:766
void icXyzToPcs(icFloatNumber *XYZ)
Definition IccUtil.cpp:941
icFloatNumber icUCFtoD(icU8Fixed8Number num)
Definition IccUtil.cpp:622
icFloatNumber icCubeth(icFloatNumber v)
Definition IccUtil.cpp:805
bool icValidTagPos(const icPositionNumber &pos, icUInt32Number nTagHeaderSize, icUInt32Number nTagSize, bool bAllowEmpty)
Name: icValidTagPos.
Definition IccUtil.cpp:163
icU16Fixed16Number icDtoUF(icFloatNumber num)
Definition IccUtil.cpp:566
void icXyzFromPcs(icFloatNumber *XYZ)
Floating point encoding of XYZ in PCS is in range 0.0 to 1.0 (Note: X=1.0 is encoded as about 0....
Definition IccUtil.cpp:934
bool icSameSpectralRange(const icSpectralRange &rng1, const icSpectralRange &rng2)
Definition IccUtil.cpp:1399
void icMatrixMultiply3x3(icFloatNumber *result, const icFloatNumber *l, const icFloatNumber *r)
Name: icMatrixMultiply3x3.
Definition IccUtil.cpp:457
bool icMatrixInvert3x3(icFloatNumber *M)
Name: icMatrixInvert3x3.
Definition IccUtil.cpp:391
icFloatNumber icUFtoD(icU16Fixed16Number num)
Definition IccUtil.cpp:580
void icVectorApplyMatrix3x3(icFloatNumber *result, const icFloatNumber *m, const icFloatNumber *v)
Name: icVectorApplyMatrix3x3.
Definition IccUtil.cpp:502
icUInt32Number icGetSpaceSamples(icColorSpaceSignature sig)
Definition IccUtil.cpp:1303
bool icIsIllumD50(icXYZNumber xyz)
Definition IccUtil.cpp:363
void icLch2Lab(icFloatNumber *Lab, icFloatNumber *Lch)
Definition IccUtil.cpp:866
void icMatrixDump(std::string &sDump, icS15Fixed16Number *pMatrix)
Definition IccUtil.cpp:988
icSignature icGetLastSigPathSig(std::string sigPath)
Definition IccUtil.cpp:1220
bool icIsNear(icFloatNumber v1, icFloatNumber v2, icFloatNumber nearRange)
Name: icIsNear.
Definition IccUtil.cpp:142
void * icRealloc(void *ptr, size_t size)
Name: icRealloc.
Definition IccUtil.cpp:111
icFloatNumber icFtoD(icS15Fixed16Number num)
Definition IccUtil.cpp:559
const icChar * icGetColorSigStr(icChar *pBuf, icUInt32Number nSig)
Definition IccUtil.cpp:1139
icFloatNumber icICubeth(icFloatNumber v)
Definition IccUtil.cpp:815
icFloatNumber icU8toF(icUInt8Number num)
Definition IccUtil.cpp:738
icUInt32Number icGetSpectralSpaceSamples(const icHeader *pHdr)
Definition IccUtil.cpp:1367
void icLabFromPcs(icFloatNumber *Lab)
Floating point encoding of Lab in PCS is in range 0.0 to 1.0.
Definition IccUtil.cpp:919
icFloatNumber icMin(icFloatNumber v1, icFloatNumber v2)
Definition IccUtil.cpp:898
icSignature icGetSecondSigPathSig(std::string sigPath)
Definition IccUtil.cpp:1238
icUInt8Number icFtoU8(icFloatNumber num)
Definition IccUtil.cpp:724
const char * icMsgValidateInformation
Definition IccUtil.cpp:93
void icLabToPcs(icFloatNumber *Lab)
Definition IccUtil.cpp:927
icFloatNumber icRmsDif(const icFloatNumber *v1, const icFloatNumber *v2, icUInt32Number nSample)
Definition IccUtil.cpp:532
void icColorValue(icChar *szValue, icFloatNumber nValue, icColorSpaceSignature csSig, int nIndex, bool bUseLegacy)
Definition IccUtil.cpp:330
icUInt32Number icGetMaterialColorSpaceSamples(icMaterialColorSignature sig)
Definition IccUtil.cpp:1391
void icLabtoXYZ(icFloatNumber *XYZ, const icFloatNumber *Lab, const icFloatNumber *WhiteXYZ)
Definition IccUtil.cpp:830
double icRoundOffset(double v)
Name: icRoundOffset.
Definition IccUtil.cpp:223
icFloat16Number icFtoF16(icFloat32Number num)
Definition IccUtil.cpp:673
bool icIsSpaceCLR(icColorSpaceSignature sig)
Definition IccUtil.cpp:262
icS15Fixed16Number icDtoF(icFloatNumber num)
Definition IccUtil.cpp:545
void icMemDump(std::string &sDump, void *pBuf, icUInt32Number nNum)
Definition IccUtil.cpp:951
icUInt32Number icIntMax(icUInt32Number v1, icUInt32Number v2)
Definition IccUtil.cpp:913
icFloatNumber icDeltaE(const icFloatNumber *lab1, const icFloatNumber *lab2)
Definition IccUtil.cpp:527
const char * icMsgValidateNonCompliant
Definition IccUtil.cpp:91
icUInt16Number icFtoU16(icFloatNumber num)
Definition IccUtil.cpp:745
icFloatNumber icUSFtoD(icU1Fixed15Number num)
Definition IccUtil.cpp:601
icFloatNumber icMax(icFloatNumber v1, icFloatNumber v2)
Definition IccUtil.cpp:903
icUInt32Number icIntMin(icUInt32Number v1, icUInt32Number v2)
Definition IccUtil.cpp:908
icUInt8Number icGetStorageTypeBytes(icUInt16Number nStorageType)
Definition IccUtil.cpp:1375
void icLab2Lch(icFloatNumber *Lch, icFloatNumber *Lab)
Definition IccUtil.cpp:881
void icColorIndexName(icChar *szName, icColorSpaceSignature csSig, int nIndex, int nColors, const icChar *szUnknown)
Definition IccUtil.cpp:295
const char * icMsgValidateCriticalError
Definition IccUtil.cpp:92
icUInt32Number icGetSigVal(const icChar *pBuf)
Definition IccUtil.cpp:1258
const icChar * icGet16bitSig(icChar *pBuf, icUInt16Number nSig, bool bGetHexVal)
Definition IccUtil.cpp:1000
bool icValidOverlap(const icPositionNumber &pos1, const icPositionNumber &pos2, bool bAllowSame)
Name: icValidOverlap.
Definition IccUtil.cpp:195
void icXYZtoLab(icFloatNumber *Lab, const icFloatNumber *XYZ, const icFloatNumber *WhiteXYZ)
Definition IccUtil.cpp:846
icFloatNumber icF16toF(icFloat16Number num)
Definition IccUtil.cpp:629
const icChar * icGetSigStr(icChar *pBuf, icUInt32Number nSig)
Definition IccUtil.cpp:1056
icSignature icGetFirstSigPathSig(std::string sigPath)
Definition IccUtil.cpp:1201
const icChar * icGetSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
Definition IccUtil.cpp:1028
icU8Fixed8Number icDtoUCF(icFloatNumber num)
Definition IccUtil.cpp:608
void icSwab64Ptr(void *pVoid)
Definition IccUtil.h:253
void icSwab16Ptr(void *pVoid)
Definition IccUtil.h:210
void icSwab16Array(void *pVoid, int num)
Definition IccUtil.h:218
void icNormXYZ(icFloatNumber *XYZ, icFloatNumber *WhiteXYZ=NULL)
CIccInfo icInfo
#define icDefaultPixelBufSize
Type: Class.
Definition IccUtil.h:373
void icDeNormXYZ(icFloatNumber *XYZ, icFloatNumber *WhiteXYZ=NULL)
void icSwab32Ptr(void *pVoid)
Definition IccUtil.h:230
void icSwab64Array(void *pVoid, int num)
Definition IccUtil.h:264
void icSwab32Array(void *pVoid, int num)
Definition IccUtil.h:239
icTagTypeSignature
unsigned int icUInt32Number
Type: Class.
Definition IccUtil.h:303
std::string * m_str
Definition IccUtil.h:360
icFloatNumber & operator[](int nPos)
Definition IccUtil.h:379
icFloatNumber * m_pixel
Definition IccUtil.h:387
icFloatNumber * get()
Definition IccUtil.h:380
Type: Class.
Definition IccUtil.h:401
virtual bool GetEnvVar(icSigCmmEnvVar sig, icFloatNumber &val)=0
virtual ~IIccCmmEnvVarLookup()
Definition IccUtil.h:403
virtual bool IndexedEnvVar(icUInt32Number nIndex, icSigCmmEnvVar &sig, icFloatNumber &val)=0
unsigned char icUInt8Number
Number definitions.
float icFloat32Number
unsigned short icUInt16Number
icUInt32Number icU16Fixed16Number
icTechnologySignature
technology signature descriptions
icProfileClassSignature
profileClass enumerations
icIlluminant
Pre-defined illuminants, used in measurement and viewing conditions type.
icMeasurementFlare
Other enums.
icColorantEncoding
Colorant and Phosphor Encodings used in chromaticity type.
icUInt16Number icFloat16Number
IEEE float storage numbers.
icMaterialColorSignature
icElemTypeSignature
Multi-Processing Element type signatures.
icColorSpaceSignature
Color Space Signatures.
icUInt32Number icSignature
icStructSignature
Tag Structure type signatures.
icUInt32Number icUInt64Number[2]
icSpectralColorSignature
icSpectralColorSignature enumerations
icPlatformSignature
Platform Signatures.
icMeasurementGeometry
Measurement Geometry, used in the measurmentType tag.
icArraySignature
Tag Array type signatures.
icColorimetricIntentImageStateSignature
Colorimetric Intent Image State Gamut Signatures.
icSpotShape
Different Spot Shapes currently defined, used for screeningType.
icInt32Number icS15Fixed16Number
Fixed numbers.
icReferenceMediumGamutSignature
Rendering Intent Gamut Signatures.
icTagSignature
public tags and sizes
icRenderingIntent
Rendering Intents, used in the profile header.
icStandardObserver
Standard Observer, used in the measurmentType tag.
icSigCmmEnvVar
icCmmSignature
CMM signatures from the signature registry (as of Mar 6, 2018)
The base date time number.
Floting point XYZ.
The Profile header.
spectral range
Profile ID.