IccMAX 2.1.27
Color Profile Tools
Loading...
Searching...
No Matches
CIccSpecTagFactory Class Reference

#include <IccTagFactory.h>

+ Inheritance diagram for CIccSpecTagFactory:
+ Collaboration diagram for CIccSpecTagFactory:

Public Member Functions

virtual CIccTagCreateTag (icTagTypeSignature tagSig)
 
virtual icTagSignature GetTagNameSig (const icChar *szTagName)
 
virtual const icCharGetTagSigName (icTagSignature tagSig)
 
virtual icTagTypeSignature GetTagTypeNameSig (const icChar *szTypeName)
 
virtual const icCharGetTagTypeSigName (icTagTypeSignature tagTypeSig)
 

Detailed Description

Class: CIccSpecTagFactory

Purpose: CIccSpecTagFactory provides creation of CIccTag's defined by the ICC profile specification. The CIccTagCreator always creates a CIccSpecTagFactory.

Member Function Documentation

◆ CreateTag()

CIccTag * CIccSpecTagFactory::CreateTag ( icTagTypeSignature  tagSig)
virtual

Function: CreateTag(tagTypeSig) Create a tag of type tagTypeSig.

Parameter(s): tagTypeSig = signature of the ICC tag type for the tag to be created

Returns a new CIccTag object of the given signature type. Unrecognized tagTypeSig's will be created as a CIccTagUnknown object.

Implements IIccTagFactory.

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}
@ icSigSegmentedCurveType
Definition icProfileHeader.h:558
@ icSigCicpType
Definition icProfileHeader.h:529
@ icSigUInt8ArrayType
Definition icProfileHeader.h:572
@ icSigDataType
Definition icProfileHeader.h:534
@ icSigUtf8TextType
Definition icProfileHeader.h:574
@ icSigUInt16ArrayType
Definition icProfileHeader.h:569
@ icSigProfileSequceIdType
Definition icProfileHeader.h:554
@ icSigProfileSequenceDescType
Definition icProfileHeader.h:553
@ icSigEmbeddedProfileType
Definition icProfileHeader.h:585
@ icSigTagArrayType
Definition icProfileHeader.h:563
@ icSigZipXMLType
Definition icProfileHeader.h:586
@ icSigMultiProcessElementType
Definition icProfileHeader.h:550
@ icSigXYZArrayType
Definition icProfileHeader.h:577
@ icSigMeasurementType
Definition icProfileHeader.h:548
@ icSigTagStructType
Definition icProfileHeader.h:564
@ icSigSparseMatrixArrayType
Definition icProfileHeader.h:560
@ icSigEmbeddedHeightImageType
Definition icProfileHeader.h:538
@ icSigFloat16ArrayType
Definition icProfileHeader.h:540
@ icSigParametricCurveType
Definition icProfileHeader.h:552
@ icSigLut8Type
Definition icProfileHeader.h:545
@ icSigMultiLocalizedUnicodeType
Definition icProfileHeader.h:549
@ icSigLutBtoAType
Definition icProfileHeader.h:547
@ icSigResponseCurveSet16Type
Definition icProfileHeader.h:555
@ icSigS15Fixed16ArrayType
Definition icProfileHeader.h:556
@ icSigUtf16TextType
Definition icProfileHeader.h:575
@ icSigColorantTableType
Definition icProfileHeader.h:531
@ icSigViewingConditionsType
Definition icProfileHeader.h:573
@ icSigTextDescriptionType
Definition icProfileHeader.h:566
@ icSigEmbeddedNormalImageType
Definition icProfileHeader.h:539
@ icSigCurveType
Definition icProfileHeader.h:533
@ icSigColorantOrderType
Definition icProfileHeader.h:530
@ icSigDateTimeType
Definition icProfileHeader.h:536
@ icSigFloat64ArrayType
Definition icProfileHeader.h:542
@ icSigLut16Type
Definition icProfileHeader.h:544
@ icSigScreeningType
Definition icProfileHeader.h:557
@ icSigUInt64ArrayType
Definition icProfileHeader.h:571
@ icSigTextType
Definition icProfileHeader.h:565
@ icSigZipXmlType
Definition icProfileHeader.h:582
@ icSigNamedColor2Type
Definition icProfileHeader.h:551
@ icSigU16Fixed16ArrayType
Definition icProfileHeader.h:567
@ icSigChromaticityType
Definition icProfileHeader.h:528
@ icSigSignatureType
Definition icProfileHeader.h:559
@ icSigZipUtf8TextType
Definition icProfileHeader.h:578
@ icSigFloat32ArrayType
Definition icProfileHeader.h:541
@ icSigUcrBgType
Definition icProfileHeader.h:568
@ icSigCrdInfoType
Definition icProfileHeader.h:532
@ icSigLutAtoBType
Definition icProfileHeader.h:546
@ icSigDictType
Definition icProfileHeader.h:535
@ icSigUInt32ArrayType
Definition icProfileHeader.h:570
@ icSigGamutBoundaryDescType
Definition icProfileHeader.h:543
@ icSigSpectralViewingConditionsTag
Definition icProfileHeader.h:470
@ icSigSpectralDataInfoTag
Definition icProfileHeader.h:468
CIccTagFixedNum< icU16Fixed16Number, icSigU16Fixed16ArrayType > CIccTagU16Fixed16
Definition IccTagBasic.h:953
CIccTagNum< icUInt8Number, icSigUInt8ArrayType > CIccTagUInt8
Definition IccTagBasic.h:1016
CIccTagFloatNum< icFloat32Number, icSigFloat16ArrayType > CIccTagFloat16
Definition IccTagBasic.h:1108
CIccTagNum< icUInt32Number, icSigUInt32ArrayType > CIccTagUInt32
Definition IccTagBasic.h:1034
CIccTagFloatNum< icFloat64Number, icSigFloat64ArrayType > CIccTagFloat64
Definition IccTagBasic.h:1127
CIccTagNum< icUInt64Number, icSigUInt64ArrayType > CIccTagUInt64
Definition IccTagBasic.h:1043
CIccTagFloatNum< icFloat32Number, icSigFloat32ArrayType > CIccTagFloat32
Definition IccTagBasic.h:1118
CIccTagNum< icUInt16Number, icSigUInt16ArrayType > CIccTagUInt16
Definition IccTagBasic.h:1025
CIccTagFixedNum< icS15Fixed16Number, icSigS15Fixed16ArrayType > CIccTagS15Fixed16
Definition IccTagBasic.h:944
Definition IccTagComposite.h:156
Definition IccTagComposite.h:226
Definition IccTagBasic.h:247
Definition IccTagBasic.h:284
Definition IccTagBasic.h:322
Definition IccTagBasic.h:367
Definition IccTagBasic.h:413
Definition IccTagBasic.h:434
Definition IccTagBasic.h:481
Definition IccTagBasic.h:538
Definition IccTagBasic.h:582
Definition IccTagBasic.h:668
Definition IccTagBasic.h:705
Definition IccTagBasic.h:746
Definition IccTagBasic.h:831
Definition IccTagBasic.h:1139
Definition IccTagBasic.h:1229
Definition IccTagBasic.h:1276
Definition IccTagBasic.h:1322
Definition IccTagBasic.h:1353
Definition IccTagBasic.h:1387
Definition IccTagBasic.h:1426
Definition IccTagBasic.h:1524
Definition IccTagBasic.h:1618
Definition IccTagBasic.h:1659
Definition IccTagBasic.h:1692
Definition IccTagBasic.h:1752
Definition IccTagBasic.h:1794
Definition IccTagLut.h:128
Definition IccTagLut.h:171
Definition IccTagLut.h:221
Definition IccTagLut.h:502
Definition IccTagLut.h:528
Definition IccTagLut.h:548
Definition IccTagLut.h:578
Definition IccTagLut.h:612
Definition IccTagMPE.h:358
Definition IccTagProfSeqId.h:115
Definition IccTagDict.h:161
Definition IccTagEmbedIcc.h:85

References CIccTagMultiProcessElement::CIccTagMultiProcessElement(), icSigChromaticityType, icSigCicpType, icSigColorantOrderType, icSigColorantTableType, icSigCrdInfoType, icSigCurveType, icSigDataType, icSigDateTimeType, icSigDictType, icSigEmbeddedHeightImageType, icSigEmbeddedNormalImageType, icSigEmbeddedProfileType, icSigFloat16ArrayType, icSigFloat32ArrayType, icSigFloat64ArrayType, icSigGamutBoundaryDescType, icSigLut16Type, icSigLut8Type, icSigLutAtoBType, icSigLutBtoAType, icSigMeasurementType, icSigMultiLocalizedUnicodeType, icSigMultiProcessElementType, icSigNamedColor2Type, icSigParametricCurveType, icSigProfileSequceIdType, icSigProfileSequenceDescType, icSigResponseCurveSet16Type, icSigS15Fixed16ArrayType, icSigScreeningType, icSigSegmentedCurveType, icSigSignatureType, icSigSparseMatrixArrayType, icSigSpectralDataInfoTag, icSigSpectralViewingConditionsTag, icSigTagArrayType, icSigTagStructType, icSigTextDescriptionType, icSigTextType, icSigU16Fixed16ArrayType, icSigUcrBgType, icSigUInt16ArrayType, icSigUInt32ArrayType, icSigUInt64ArrayType, icSigUInt8ArrayType, icSigUtf16TextType, icSigUtf8TextType, icSigViewingConditionsType, icSigXYZArrayType, icSigZipUtf8TextType, icSigZipXmlType, and icSigZipXMLType.

+ Here is the call graph for this function:

◆ GetTagNameSig()

icTagSignature CIccSpecTagFactory::GetTagNameSig ( const icChar szTagName)
virtual

Function: GetTagNameSig(szTagName) Get signature from tag display name.

Parameter(s): szTagName = name of tag

Returns tag signature of tag if tag name is recognized by the factory, icSigUnknownTag if the tag name is not recognized.

Implements IIccTagFactory.

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}
#define icSigUnknownTag
Definition icProfileHeader.h:483
static icTagNameToSigMap g_TagNameToSigMap
Definition IccTagFactory.cpp:86
static icTagSigToNameMap g_TagSigToNameMap
Definition IccTagFactory.cpp:83
struct @5 g_icTagNameTable[]

References g_TagNameToSigMap, and g_TagSigToNameMap.

◆ GetTagSigName()

const icChar * CIccSpecTagFactory::GetTagSigName ( icTagSignature  tagSig)
virtual

Function: GetTagSigName(tagSig) Get display name of tagSig.

Parameter(s): tagName = string to put tag name into, tagSig = signature of the ICC tag type to get a name for

Returns pointer to string containing name of tag if tag is recognized by the factory, NULL if the factory doesn't create tagSig tags.

Implements IIccTagFactory.

467{
468 if (g_TagSigToNameMap.empty()) {
469 for (int i = 0; g_icTagNameTable[i].sig; i++)
470 g_TagSigToNameMap[g_icTagNameTable[i].sig] = std::string(g_icTagNameTable[i].szName);
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}

References g_TagSigToNameMap.

◆ GetTagTypeNameSig()

icTagTypeSignature CIccSpecTagFactory::GetTagTypeNameSig ( const icChar szTypeName)
virtual

Function: GetTagTypeNameSig(szTypeName) Get signature based on display name of tag type.

Parameter(s): szTypeName = name of the ICC tag type to get a signature for

Returns tag type signature of tag type name if type name is recognized by the factory, icSigUnknownType if the type name is not recognized.

Implements IIccTagFactory.

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 }
520 sig = g_AltTagTypeNameToSigMap.find(szName);
521 if (sig != g_AltTagTypeNameToSigMap.end())
522 return sig->second;
523
524 return icSigUnknownType;
525}
#define icSigUnknownType
Definition icProfileHeader.h:591
static icTagTypeNameToSigMap g_AltTagTypeNameToSigMap
Definition IccTagFactory.cpp:224
struct @6 g_icTagTypeNameTable[]
struct @7 g_icAltTagTypeNameTable[]
static icTagTypeNameToSigMap g_TagTypeNameToSigMap
Definition IccTagFactory.cpp:223

References g_AltTagTypeNameToSigMap, and g_TagTypeNameToSigMap.

◆ GetTagTypeSigName()

const icChar * CIccSpecTagFactory::GetTagTypeSigName ( icTagTypeSignature  tagTypeSig)
virtual

Function: GetTagTypeSigName(tagTypeSig) Get display name of tagTypeSig.

Parameter(s): tagName = string to put tag name into, tagTypeSig = signature of the ICC tag type to get a name for

Returns pointer to string containing name of tag type if tag is recognized by the factory, NULL if the factory doesn't create tagTypeSig tags.

Implements IIccTagFactory.

493{
494 if (g_TagTypeSigToNameMap.empty()) {
495 for (int i = 0; g_icTagTypeNameTable[i].sig; i++)
496 g_TagTypeSigToNameMap[g_icTagTypeNameTable[i].sig] = std::string(g_icTagTypeNameTable[i].szName);
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}
static icTagTypeSigToNameMap g_TagTypeSigToNameMap
Definition IccTagFactory.cpp:220

References g_TagTypeSigToNameMap.


The documentation for this class was generated from the following files: