Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccTagFactory.cpp
Go to the documentation of this file.
1/** @file
2 File: IccTagFactory.cpp
3
4 Contains: Implementation of the CIccTag class and creation factories
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// -Oct 30, 2005
68// Added CICCTag Creation using factory support
69//
70//////////////////////////////////////////////////////////////////////
71
72#include "IccTag.h"
73#include "IccTagFactory.h"
74#include "IccUtil.h"
75#include "IccProfile.h"
76#include <map>
77
78#ifdef USEREFICCMAXNAMESPACE
79namespace refIccMAX {
80#endif
81
82typedef std::map<icTagSignature, std::string> icTagSigToNameMap;
84
85typedef std::map<std::string, icTagSignature> icTagNameToSigMap;
87
88struct {
90 const icChar *szName;
91} g_icTagNameTable[] = {
92 {icSigAToB0Tag, "AToB0Tag"},
93 {icSigAToB1Tag, "AToB1Tag"},
94 {icSigAToB2Tag, "AToB2Tag"},
95 {icSigAToB3Tag, "AToB3Tag"},
96 {icSigAToM0Tag, "AToM0Tag"},
97 {icSigBlueColorantTag, "blueColorantTag"},
98 {icSigBlueTRCTag, "blueTRCTag"},
99 {icSigBrdfColorimetricParameter0Tag, "brdfColorimetricParameter0Tag"},
100 {icSigBrdfColorimetricParameter1Tag, "brdfColorimetricParameter1Tag"},
101 {icSigBrdfColorimetricParameter2Tag, "brdfColorimetricParameter2Tag"},
102 {icSigBrdfColorimetricParameter3Tag, "brdfColorimetricParameter3Tag"},
103 {icSigBrdfSpectralParameter0Tag, "brdfSpectralParameter0Tag"},
104 {icSigBrdfSpectralParameter1Tag, "brdfSpectralParameter1Tag"},
105 {icSigBrdfSpectralParameter2Tag, "brdfSpectralParameter2Tag"},
106 {icSigBrdfSpectralParameter3Tag, "brdfSpectralParameter3Tag"},
107 {icSigBRDFMToB0Tag, "brdfMToB0Tag"},
108 {icSigBRDFMToB1Tag, "brdfMToB1Tag"},
109 {icSigBRDFMToB2Tag, "brdfMToB2Tag"},
110 {icSigBRDFMToB3Tag, "brdfMToB3Tag"},
111 {icSigBRDFMToS0Tag, "brdfMToS0Tag"},
112 {icSigBRDFMToS1Tag, "brdfMToS1Tag"},
113 {icSigBRDFMToS2Tag, "brdfMToS2Tag"},
114 {icSigBRDFMToS3Tag, "brdfMToS3Tag"},
115 {icSigBRDFAToB0Tag, "BRDFAToB0Tag"},
116 {icSigBRDFAToB1Tag, "BRDFAToB1Tag"},
117 {icSigBRDFAToB2Tag, "BRDFAToB2Tag"},
118 {icSigBRDFAToB3Tag, "BRDFAToB3Tag"},
119 {icSigBRDFDToB0Tag, "BRDFDToB0Tag"},
120 {icSigBRDFDToB1Tag, "BRDFDToB1Tag"},
121 {icSigBRDFDToB2Tag, "BRDFDToB2Tag"},
122 {icSigBRDFDToB3Tag, "BRDFDToB3Tag"},
123 {icSigSurfaceMapTag, "surfaceMapTag"},
124 {icSigBToA0Tag, "BToA0Tag"},
125 {icSigBToA1Tag, "BToA1Tag"},
126 {icSigBToA2Tag, "BToA2Tag"},
127 {icSigBToA3Tag, "BToA3Tag"},
128 {icSigBToD0Tag, "BToD0Tag"},
129 {icSigBToD1Tag, "BToD1Tag"},
130 {icSigBToD2Tag, "BToD2Tag"},
131 {icSigBToD3Tag, "BToD3Tag"},
132 {icSigCalibrationDateTimeTag, "calibrationDateTimeTag"},
133 {icSigCharTargetTag, "charTargetTag"},
134 {icSigChromaticityTag, "chromaticityTag"},
135 {icSigCicpTag, "cicpTag"},
136 {icSigCopyrightTag, "copyrightTag"},
137 {icSigCrdInfoTag, "crdInfoTag"},
138 {icSigDataTag, "dataTag"},
139 {icSigDateTimeTag, "dateTimeTag"},
140 {icSigDeviceMfgDescTag, "deviceMfgDescTag"},
141 {icSigDeviceModelDescTag, "deviceModelDescTag"},
142 {icSigMetaDataTag, "metaDataTag"},
143 {icSigDToB0Tag, "DToB0Tag"},
144 {icSigDToB1Tag, "DToB1Tag"},
145 {icSigDToB2Tag, "DToB2Tag"},
146 {icSigDToB3Tag, "DToB3Tag"},
147 {icSigGamutTag, "gamutTag"},
148 {icSigGamutBoundaryDescription0Tag, "gamutBoundaryDescription0Tag"},
149 {icSigGamutBoundaryDescription1Tag, "gamutBoundaryDescription1Tag"},
150 {icSigGamutBoundaryDescription2Tag, "gamutBoundaryDescription2Tag"},
151 {icSigGamutBoundaryDescription3Tag, "gamutBoundaryDescription3Tag"},
152 {icSigGrayTRCTag, "grayTRCTag"},
153 {icSigGreenColorantTag, "greenColorantTag"},
154 {icSigGreenTRCTag, "greenTRCTag"},
155 {icSigHToS0Tag, "HToS0Tag"},
156 {icSigHToS1Tag, "HToS1Tag"},
157 {icSigHToS2Tag, "HTSB2Tag"},
158 {icSigHToS3Tag, "HToS3Tag"},
159 {icSigLuminanceTag, "luminanceTag"},
160 {icSigMeasurementTag, "measurementTag"},
161 {icSigMediaBlackPointTag, "mediaBlackPointTag"},
162 {icSigMediaWhitePointTag, "mediaWhitePointTag"},
163 {icSigMToA0Tag, "MToA0Tag"},
164 {icSigMToB0Tag, "MToB0Tag"},
165 {icSigMToB1Tag, "MToB1Tag"},
166 {icSigMToB2Tag, "MToB2Tag"},
167 {icSigMToB3Tag, "MToB3Tag"},
168 {icSigMToS0Tag, "MToS0Tag"},
169 {icSigMToS1Tag, "MToS1Tag"},
170 {icSigMToS2Tag, "MToS2Tag"},
171 {icSigMToS3Tag, "MToS3Tag"},
172 {icSigNamedColor2Tag, "namedColor2Tag"},
173 {icSigPreview0Tag, "preview0Tag"},
174 {icSigPreview1Tag, "preview1Tag"},
175 {icSigPreview2Tag, "preview2Tag"},
176 {icSigPrintConditionTag, "printConditionTag"},
177 {icSigProfileDescriptionTag, "profileDescriptionTag"},
178 {icSigProfileSequenceDescTag, "profileSequenceDescTag"},
179 {icSigProfileSequceIdTag, "profileSequenceIdentifierTag"},
180 {icSigPs2CRD0Tag, "ps2CRD0Tag"},
181 {icSigPs2CRD1Tag, "ps2CRD1Tag"},
182 {icSigPs2CRD2Tag, "ps2CRD2Tag"},
183 {icSigPs2CRD3Tag, "ps2CRD3Tag"},
184 {icSigPs2CSATag, "ps2CSATag"},
185 {icSigPs2RenderingIntentTag, "ps2RenderingIntentTag"},
186 {icSigRedColorantTag, "redColorantTag"},
187 {icSigRedTRCTag, "redTRCTag"},
188 {icSigScreeningDescTag, "screeningDescTag"},
189 {icSigScreeningTag, "screeningTag"},
190 {icSigTechnologyTag, "technologyTag"},
191 {icSigUcrBgTag, "ucrBgTag"},
192 {icSigViewingCondDescTag, "viewingCondDescTag"},
193 {icSigViewingConditionsTag, "viewingConditionsTag"},
194 {icSigSpectralViewingConditionsTag, "spectralViewingConditionsTag"},
195 {icSigColorantInfoTag, "colorantInfoTag" },
196 {icSigColorantInfoOutTag, "colorantInfoOutTag" },
197 {icSigColorantOrderTag, "colorantOrderTag" },
198 {icSigColorantOrderOutTag, "colorantOrderOutTag"},
199 {icSigColorantTableTag, "colorantTableTag"},
200 {icSigChromaticAdaptationTag, "chromaticAdaptationTag"},
201 {icSigColorantTableOutTag, "colorantTableOutTag"},
202 {icSigOutputResponseTag, "outputResponseTag"},
203 {icSigPerceptualRenderingIntentGamutTag, "perceptualRenderingIntentGamutTag"},
204 {icSigSaturationRenderingIntentGamutTag, "saturationRenderingIntentGamutTag"},
205 {icSigCxFTag, "CxfTag"},
206 {icSigSpectralDataInfoTag, "spectralDataInfoTag"},
207 {icSigSpectralWhitePointTag, "spectralWhitePointTag"},
208 {icSigCustomToStandardPccTag, "customToStandardPccTag"},
209 {icSigStandardToCustomPccTag, "standardToCustomPccTag"},
210 {icSigColorEncodingParamsTag, "colorEncodingParamsTag"},
211 {icSigColorSpaceNameTag, "colorSpaceNameTag"},
212 {icSigReferenceNameTag, "referenceNameTag"},
213 {icSigMaterialTypeArrayTag, "materialTypeArrayTag"},
214 {icSigMaterialDefaultValuesTag, "materialDefaultValuesTag"},
215 {icSigEmbeddedV5ProfileTag, "embeddedV5ProfileTag"},
216 {(icTagSignature)0,""},
218
219typedef std::map<icTagTypeSignature, std::string> icTagTypeSigToNameMap;
221
222typedef std::map<std::string, icTagTypeSignature> icTagTypeNameToSigMap;
225
226struct {
228 const icChar *szName;
230 {icSigChromaticityType, "chromaticityType"},
231 {icSigCicpType, "cicpType"},
232 {icSigColorantOrderType, "colorantOrderType"},
233 {icSigColorantTableType, "colorantTableType"},
234 {icSigCrdInfoType, "crdInfoType"},
235 {icSigCurveType, "curveType"},
236 {icSigSegmentedCurveType, "segmentedCurveType"},
237 {icSigDataType, "dataType"},
238 {icSigDateTimeType, "dateTimeType"},
239 {icSigDeviceSettingsType, "deviceSettingsType"},
240 {icSigDictType, "dictType"},
241 {icSigEmbeddedHeightImageType, "embeddedHeightImageType"},
242 {icSigEmbeddedNormalImageType, "embeddedNormalImageType" },
243 {icSigGamutBoundaryDescType, "gamutBoundaryDescType"},
244 {icSigLut16Type, "lut16Type"},
245 {icSigLut8Type, "lut8Type"},
246 {icSigLutAtoBType, "lutAtoBType"},
247 {icSigLutBtoAType, "lutBtoAType"},
248 {icSigMeasurementType, "measurementType"},
249 {icSigMultiLocalizedUnicodeType, "multiLocalizedUnicodeType"},
250 {icSigMultiProcessElementType, "multiProcessElementType"},
251 {icSigNamedColor2Type, "namedColor2Type"},
252 {icSigParametricCurveType, "parametricCurveType"},
253 {icSigResponseCurveSet16Type, "responseCurveSet16Type"},
254 {icSigProfileSequenceDescType, "profileSequenceDescType"},
255 {icSigS15Fixed16ArrayType, "s15Fixed16ArrayType"},
256 {icSigScreeningType, "screeningType"},
257 {icSigSignatureType, "signatureType"},
258 {icSigSpectralDataInfoType, "spectralDataInfoType"},
259 {icSigSpectralViewingConditionsType, "spectralViewingConditionsType"},
260 {icSigTextType, "textType"},
261 {icSigTextDescriptionType, "textDescriptionType"},
262 {icSigU16Fixed16ArrayType, "u16Fixed16ArrayType"},
263 {icSigUcrBgType, "ucrBgType"},
264 {icSigSparseMatrixArrayType, "sparseMatrixArrayType"},
265 {icSigUInt16ArrayType, "uInt16ArrayType"},
266 {icSigUInt32ArrayType, "uInt32ArrayType"},
267 {icSigUInt64ArrayType, "uInt64ArrayType"},
268 {icSigUInt8ArrayType, "uInt8ArrayType"},
269 {icSigFloat16ArrayType, "float16ArrayType"},
270 {icSigFloat32ArrayType, "float32ArrayType"},
271 {icSigFloat64ArrayType, "float64ArrayType"},
272 {icSigUtf8TextType, "utf8Type"},
273 {icSigZipUtf8TextType, "utf8ZipType"},
274 {icSigZipXmlType, "zipXmlType"},
275 {icSigZipXMLType, "ZIPXmlType"},
276 {icSigUtf16TextType, "utf16Type"},
277 {icSigTagArrayType, "tagArrayType"},
278 {icSigTagStructType, "tagStructType"},
279 {icSigViewingConditionsType, "viewingConditionsType"},
280 {icSigXYZArrayType, "XYZArrayType"},
281 {icSigProfileSequceIdType, "profileSequenceIdentifierType"},
282 {icSigEmbeddedProfileType, "embeddedProfileType"},
283 {(icTagTypeSignature)0,"" },
285
286//Tag type names used in previous versions of these libraries
287struct {
289 const icChar *szName;
291 { icSigFloat16ArrayType , "float16NumberType" },
292 { icSigFloat32ArrayType , "float32NumberType" },
293 { icSigFloat64ArrayType , "float64NumberType" },
294 { icSigS15Fixed16ArrayType , "s15Fixed16NumberType" },
295 { icSigU16Fixed16ArrayType , "u16Fixed16NumberType" },
296 { icSigUInt16ArrayType , "uInt16NumberType" },
297 { icSigUInt32ArrayType , "uInt32NumberType" },
298 { icSigUInt64ArrayType , "uInt64NumberType" },
299 { icSigUInt8ArrayType , "uInt8NumberType" },
300 { icSigUtf8TextType , "utf8TextType" },
301 { icSigTagStructType , "tagStructureType" },
302 { icSigXYZArrayType , "XYZType" },
303 { icSigZipUtf8TextType , "zipUtf8TextType" },
304 { (icTagTypeSignature)0,"" },
306
308{
309 switch(tagSig) {
311 return new CIccTagSignature;
312
313 case icSigTextType:
314 return new CIccTagText;
315
317 return new CIccTagXYZ;
318
319 case icSigCicpType:
320 return new CIccTagCicp;
321
323 return new CIccTagUInt8;
324
326 return new CIccTagUInt16;
327
329 return new CIccTagUInt32;
330
332 return new CIccTagUInt64;
333
335 return new CIccTagS15Fixed16;
336
338 return new CIccTagU16Fixed16;
339
341 return new CIccTagFloat16;
342
344 return new CIccTagFloat32;
345
347 return new CIccTagFloat64;
348
350 return new CIccTagGamutBoundaryDesc;
351
352 case icSigCurveType:
353 return new CIccTagCurve;
354
356 return new CIccTagSegmentedCurve;
357
359 return new CIccTagMeasurement;
360
363
365 return new CIccTagMultiProcessElement();
366
368 return new CIccTagParametricCurve;
369
370 case icSigLutAtoBType:
371 return new CIccTagLutAtoB;
372
373 case icSigLutBtoAType:
374 return new CIccTagLutBtoA;
375
376 case icSigLut16Type:
377 return new CIccTagLut16;
378
379 case icSigLut8Type:
380 return new CIccTagLut8;
381
383 return new CIccTagTextDescription;
384
386 return new CIccTagNamedColor2;
387
389 return new CIccTagChromaticity;
390
391 case icSigDataType:
392 return new CIccTagData;
393
395 return new CIccTagDateTime;
396
397#ifndef ICC_UNSUPPORTED_TAG_DICT
398 case icSigDictType:
399 return new CIccTagDict;
400#endif
401
403 return new CIccTagColorantOrder;
404
406 return new CIccTagColorantTable;
407
409 return new CIccTagSparseMatrixArray;
410
412 return new CIccTagViewingConditions;
413
415 return new CIccTagSpectralDataInfo;
416
419
421 return new CIccTagProfileSeqDesc;
422
424 return new CIccTagResponseCurveSet16;
425
427 return new CIccTagProfileSequenceId;
428
430 return new CIccTagUtf8Text;
431
433 return new CIccTagZipUtf8Text;
434
435 case icSigZipXmlType:
436 case icSigZipXMLType:
437 return new CIccTagZipXml;
438
440 return new CIccTagUtf16Text;
441
443 return new CIccTagArray;
444
446 return new CIccTagStruct;
447
449 return new CIccTagEmbeddedProfile;
450
453
456
458 case icSigUcrBgType:
459 case icSigCrdInfoType:
460
461 default:
462 return new CIccTagUnknown;
463 }
464}
465
467{
468 if (g_TagSigToNameMap.empty()) {
469 for (int i = 0; g_icTagNameTable[i].sig; i++)
471 }
472 icTagSigToNameMap::iterator sig = g_TagSigToNameMap.find(tagSig);
473 if (sig != g_TagSigToNameMap.end())
474 return sig->second.c_str();
475
476 return NULL;
477}
478
480{
481 if (g_TagSigToNameMap.empty()) {
482 for (int i = 0; g_icTagNameTable[i].sig; i++)
484 }
485 icTagNameToSigMap::iterator sig = g_TagNameToSigMap.find(szName);
486 if (sig != g_TagNameToSigMap.end())
487 return sig->second;
488
489 return icSigUnknownTag;
490}
491
493{
494 if (g_TagTypeSigToNameMap.empty()) {
495 for (int i = 0; g_icTagTypeNameTable[i].sig; i++)
497 }
498 icTagTypeSigToNameMap::iterator sig = g_TagTypeSigToNameMap.find(typeSig);
499 if (sig != g_TagTypeSigToNameMap.end())
500 return sig->second.c_str();
501
502 return NULL;
503}
504
506{
507 if (g_TagTypeNameToSigMap.empty()) {
508 for (int i = 0; g_icTagTypeNameTable[i].sig; i++)
510 }
511 icTagTypeNameToSigMap::iterator sig = g_TagTypeNameToSigMap.find(szName);
512 if (sig != g_TagTypeNameToSigMap.end())
513 return sig->second;
514
515 //Allow conversion from alternate names (backwards compatibility with earlier versions)
516 if (g_AltTagTypeNameToSigMap.empty()) {
517 for (int i = 0; g_icAltTagTypeNameTable[i].sig; i++)
519 }
521 if (sig != g_AltTagTypeNameToSigMap.end())
522 return sig->second;
523
524 return icSigUnknownType;
525}
526
527std::unique_ptr<CIccTagCreator> CIccTagCreator::theTagCreator;
528
530{
531 IIccTagFactory *pFactory = DoPopFactory(true);
532
533 while (pFactory) {
534 delete pFactory;
535 pFactory = DoPopFactory(true);
536 }
537}
538
540{
541 if (!theTagCreator.get()) {
542 theTagCreator = CIccTagCreatorPtr(new CIccTagCreator);
543
544 theTagCreator->DoPushFactory(new CIccSpecTagFactory);
545 }
546
547 return theTagCreator.get();
548}
549
551{
552 CIccTagFactoryList::iterator i;
553 CIccTag *rv = NULL;
554
555 for (i=factoryStack.begin(); i!=factoryStack.end(); i++) {
556 rv = (*i)->CreateTag(tagTypeSig);
557 if (rv)
558 break;
559 }
560 return rv;
561}
562
564{
565 CIccTagFactoryList::iterator i;
566 const icChar* rv;
567
568 for (i=factoryStack.begin(); i!=factoryStack.end(); i++) {
569 rv = (*i)->GetTagSigName(tagSig);
570 if (rv)
571 return rv;
572 }
573
574 return NULL;
575}
576
578{
579 CIccTagFactoryList::iterator i;
581
582 for (i = factoryStack.begin(); i != factoryStack.end(); i++) {
583 rv = (*i)->GetTagNameSig(szName);
584 if (rv!=icSigUnknownTag)
585 return rv;
586 }
587
588 return icSigUnknownTag;
589}
590
591
593{
594 CIccTagFactoryList::iterator i;
595 const icChar* rv;
596
597 for (i=factoryStack.begin(); i!=factoryStack.end(); i++) {
598 rv = (*i)->GetTagTypeSigName(tagTypeSig);
599 if (rv)
600 return rv;
601 }
602
603 return NULL;
604}
605
607{
608 CIccTagFactoryList::iterator i;
610
611 for (i = factoryStack.begin(); i != factoryStack.end(); i++) {
612 rv = (*i)->GetTagTypeNameSig(szName);
613 if (rv!=icSigUnknownType)
614 return rv;
615 }
616
617 return icSigUnknownType;
618}
619
621{
622 factoryStack.push_front(pFactory);
623}
624
626{
627// int nNum = (bAll ? 0 : 1);
628
629 if (factoryStack.size()>0) {
630 CIccTagFactoryList::iterator i=factoryStack.begin();
631 IIccTagFactory* rv = (*i);
632 factoryStack.pop_front();
633 return rv;
634 }
635 return NULL;
636}
637
638#ifdef USEREFICCMAXNAMESPACE
639} //namespace refIccMAX
640#endif
icArraySignature sig
char icChar
Definition IccDefs.h:109
File: IccProfile.h.
File: IccTag.h.
CIccTagFixedNum< icU16Fixed16Number, icSigU16Fixed16ArrayType > CIccTagU16Fixed16
Classe: CIccTagU16Fixed16.
CIccTagNum< icUInt8Number, icSigUInt8ArrayType > CIccTagUInt8
Class: CIccTagUInt8.
CIccTagFloatNum< icFloat32Number, icSigFloat16ArrayType > CIccTagFloat16
Class: CIccTagFloat16.
CIccTagNum< icUInt32Number, icSigUInt32ArrayType > CIccTagUInt32
Class: CIccTagUInt32.
CIccTagFloatNum< icFloat64Number, icSigFloat64ArrayType > CIccTagFloat64
Class: CIccTagFloat64.
CIccTagNum< icUInt64Number, icSigUInt64ArrayType > CIccTagUInt64
Class: CIccTagUInt64.
CIccTagFloatNum< icFloat32Number, icSigFloat32ArrayType > CIccTagFloat32
Class: CIccTagFloat32.
CIccTagNum< icUInt16Number, icSigUInt16ArrayType > CIccTagUInt16
Class: CIccTagUInt16.
CIccTagFixedNum< icS15Fixed16Number, icSigS15Fixed16ArrayType > CIccTagS15Fixed16
Class: CIccTagS15Fixed16.
std::map< icTagSignature, std::string > icTagSigToNameMap
std::map< std::string, icTagTypeSignature > icTagTypeNameToSigMap
std::map< std::string, icTagSignature > icTagNameToSigMap
static icTagTypeNameToSigMap g_AltTagTypeNameToSigMap
struct @6 g_icTagTypeNameTable[]
static icTagNameToSigMap g_TagNameToSigMap
static icTagSigToNameMap g_TagSigToNameMap
struct @7 g_icAltTagTypeNameTable[]
static icTagTypeSigToNameMap g_TagTypeSigToNameMap
const icChar * szName
std::map< icTagTypeSignature, std::string > icTagTypeSigToNameMap
struct @5 g_icTagNameTable[]
static icTagTypeNameToSigMap g_TagTypeNameToSigMap
File: IccTagFactory.h.
std::unique_ptr< CIccTagCreator > CIccTagCreatorPtr
File: IccUtil.h.
icTagTypeSignature
@ icSigUInt16ArrayType
Class: CIccSpecTagFactory.
virtual const icChar * GetTagTypeSigName(icTagTypeSignature tagTypeSig)
Function: GetTagTypeSigName(tagTypeSig) Get display name of tagTypeSig.
virtual icTagSignature GetTagNameSig(const icChar *szTagName)
Function: GetTagNameSig(szTagName) Get signature from tag display name.
virtual icTagTypeSignature GetTagTypeNameSig(const icChar *szTypeName)
Function: GetTagTypeNameSig(szTypeName) Get signature based on display name of tag type.
virtual const icChar * GetTagSigName(icTagSignature tagSig)
Function: GetTagSigName(tagSig) Get display name of tagSig.
virtual CIccTag * CreateTag(icTagTypeSignature tagSig)
Function: CreateTag(tagTypeSig) Create a tag of type tagTypeSig.
Class: CIccTagArray.
Class: CIccTagChromaticity.
Class: CIccTagCicp.
Class: CIccTagColorantOrder.
Class: CIccTagColorantTable.
Class: CIccTagCreator.
icTagSignature DoGetTagNameSig(const icChar *szName)
void DoPushFactory(IIccTagFactory *pFactory)
icTagTypeSignature DoGetTagTypeNameSig(const icChar *szName)
static CIccTagCreatorPtr theTagCreator
IIccTagFactory * DoPopFactory(bool bAll=false)
static CIccTagCreator * GetInstance()
Function: GetInstance() Private static function to access singleton CiccTagCreator Object.
const icChar * DoGetTagSigName(icTagSignature tagSig)
const icChar * DoGetTagTypeSigName(icTagTypeSignature tagTypeSig)
CIccTag * DoCreateTag(icTagTypeSignature tagTypeSig)
Class: CIccTagCurve.
Definition IccTagLut.h:128
Class: CIccTagData.
Class: CIccTagDateTime.
Class: CIccTagDict.
Definition IccTagDict.h:161
Class: CIccTagEmbeddedHeightImage.
Class: CIccTagEmbeddedNormalImage.
Class: IccTagEmbeddedProfile.
Class: CIccTagGamutBoundaryDesc.
Definition IccTagLut.h:612
Class: CIccTag.
Class: CIccTagLut16.
Definition IccTagLut.h:578
Class: CIccTagLut8.
Definition IccTagLut.h:548
Class: CIccTagLutAtoB.
Definition IccTagLut.h:502
Class: CIccTagLutBtoA.
Definition IccTagLut.h:528
Class: CIccTagMeasurement.
Class: CIccTagMultiLocalizedUnicode.
Class: CIccTagMultiProcessElement.
Definition IccTagMPE.h:358
Class: CIccTagNamedColor2.
Class: CIccTagParametricCurve.
Definition IccTagLut.h:171
Class: CIccTagProfileSeqDesc.
Class: CIccTagProfileSequenceId.
Class: CIccTagResponseCurveSet16.
Class: CIccTagSegmentedCurve.
Definition IccTagLut.h:221
Class: CIccTagSignature.
Class: CIccTagSparseMatrixArray.
Class: CIccTagSpectralDataInfo.
Class: CIccTagSpectralViewingConditions.
Class: CIccTagStruct.
Class: CIccTagTextDescription()
Class: CIccTagText()
Class: IccTagUnknown.
Class: CIccTagUtf16Text()
Class: CIccTagUtf8Text()
Class: CIccTagViewingConditions.
Class: CIccTagXYZ.
Class: CIccTagZipUtf8Text()
Class: CIccTagZipXml()
Class: IIccTagFactory.
#define icSigUnknownType
Convenience Enum Definitions - Not defined in ICC specification.
@ icSigSegmentedCurveType
@ icSigCicpType
@ icSigSpectralDataInfoType
@ icSigUInt8ArrayType
@ icSigDataType
@ icSigUtf8TextType
@ icSigProfileSequceIdType
@ icSigProfileSequenceDescType
@ icSigEmbeddedProfileType
@ icSigTagArrayType
@ icSigZipXMLType
@ icSigMultiProcessElementType
@ icSigXYZArrayType
@ icSigMeasurementType
@ icSigTagStructType
@ icSigSparseMatrixArrayType
@ icSigEmbeddedHeightImageType
@ icSigFloat16ArrayType
@ icSigParametricCurveType
@ icSigLut8Type
@ icSigMultiLocalizedUnicodeType
@ 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
#define icSigUnknownTag
Convenience Enum Definitions - Not defined in ICC specification.
icTagSignature
public tags and sizes
@ icSigEmbeddedV5ProfileTag
@ icSigBToD0Tag
@ icSigGrayTRCTag
@ icSigSpectralViewingConditionsTag
@ icSigBRDFMToB1Tag
@ icSigBRDFMToB3Tag
@ icSigBrdfColorimetricParameter3Tag
@ icSigPerceptualRenderingIntentGamutTag
@ icSigBToA2Tag
@ icSigDeviceMfgDescTag
@ icSigGamutBoundaryDescription3Tag
@ icSigColorantOrderTag
@ icSigBRDFDToB0Tag
@ icSigViewingConditionsTag
@ icSigAToB3Tag
@ icSigColorantInfoTag
@ icSigBrdfColorimetricParameter2Tag
@ icSigHToS3Tag
@ icSigGamutBoundaryDescription2Tag
@ icSigGamutBoundaryDescription1Tag
@ icSigGamutBoundaryDescription0Tag
@ icSigMaterialDefaultValuesTag
@ icSigColorSpaceNameTag
@ icSigMToS3Tag
@ icSigBrdfSpectralParameter0Tag
@ icSigGreenTRCTag
@ icSigMeasurementTag
@ icSigCrdInfoTag
@ icSigPs2CSATag
@ 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
@ 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
@ icSigDToB2Tag
@ icSigStandardToCustomPccTag
@ icSigLuminanceTag
@ icSigGamutTag
@ icSigMToA0Tag
@ icSigTechnologyTag
@ icSigMToS1Tag
@ icSigPrintConditionTag
@ icSigDToB1Tag
@ icSigBRDFDToB1Tag
@ icSigBrdfColorimetricParameter0Tag
@ icSigBRDFMToB2Tag
@ icSigMaterialTypeArrayTag
@ icSigBRDFMToS2Tag
@ icSigBRDFDToB2Tag
@ icSigPreview2Tag
@ icSigBlueColorantTag
@ icSigBrdfColorimetricParameter1Tag
@ icSigBRDFMToB0Tag
@ icSigMToB2Tag
@ icSigBRDFDToB3Tag