Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccStructBasic.cpp
Go to the documentation of this file.
1/** @file
2 File: IccStructBasic.cpp
3
4 Contains: Implementation of the IIccStruct class and basic inherited classes
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#ifdef WIN32
72 #pragma warning( disable: 4786) //disable warning in <list.h>
73 #include <windows.h>
74#endif
75#include <stdio.h>
76#include <math.h>
77#include <string.h>
78#include <stdlib.h>
79#include "IccStructBasic.h"
80#include "IccUtil.h"
81#include "IccStructFactory.h"
82
83#ifndef __min
84#include <algorithm>
85using std::min;
86#define __min min
87#endif
88
89#ifdef USEREFICCMAXNAMESPACE
90namespace refIccMAX {
91#endif
92
93
95{
96 m_pTagStruct = pTagStruct;
97 m_pElemNameSigTable = NULL;
98}
99
100
105
106
108{
109 CIccStructUnknown *rv = new CIccStructUnknown(pTagStruct);
110
111 return rv;
112}
113
114
115void CIccStructUnknown::Describe(std::string &sDescription, int nVerboseness) const
116{
117 char buf[256];
118 CIccInfo info;
119 int n;
120
121 if (m_pTagStruct) {
122 TagEntryList *entries = m_pTagStruct->GetElemList();
123 TagEntryList::iterator i;
124
125 for (n=0, i=entries->begin(); i!=entries->end(); n++, i++) {
126 if (i->pTag) {
127 if (n)
128 sDescription += "\n";
129 sprintf(buf, "Begin SubTag(%s)\n", GetElemName(i->TagInfo.sig).c_str());
130 sDescription += buf;
131 i->pTag->Describe(sDescription, nVerboseness);
132 sprintf(buf, "End SubTag(%s)\n", GetElemName(i->TagInfo.sig).c_str());
133 sDescription += buf;
134 }
135 }
136 }
137}
138
139
141{
142 if (m_pElemNameSigTable) {
143 int i;
144 for (i = 0; m_pElemNameSigTable[i].szName; i++) {
145 if (m_pElemNameSigTable[i].nSig == sigElem)
146 return m_pElemNameSigTable[i].szName;
147 }
148 }
149
150 CIccInfo info;
151 std::string str;
152
153 str = "PrivateSubTag";
154 //str += info.GetSigName(sigElem);
155
156 return str;
157}
158
160{
161 if (m_pElemNameSigTable) {
162 int i;
163 for (i = 0; m_pElemNameSigTable[i].szName; i++) {
164 if (!strcmp(m_pElemNameSigTable[i].szName, szElemName))
165 return m_pElemNameSigTable[i].nSig;
166 }
167 }
168
169 return (icSignature)0;
170}
171
173{
174 if (!m_pTagStruct)
175 return NULL;
176
177 return m_pTagStruct->FindElem(sigElem);
178}
179
180
181icValidateStatus CIccStructUnknown::Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile/* = NULL*/) const
182{
184
185 TagEntryList *pList = getTagEntries();
186 if (pList) {
187 // Per Tag tests
188 TagEntryList::iterator i;
189 for (i = pList->begin(); i != pList->end(); i++) {
190 if (i->pTag)
191 rv = icMaxStatus(rv, i->pTag->Validate(sigPath + icGetSigPath(i->TagInfo.sig), sReport, pProfile));
192 }
193 }
194 else {
195 sReport += "Struct Handler not connected to CIccTagStruct object with valid sub-tags!";
196
198 }
199
200 return rv;
201}
202
203
204
206 { icSigBrdfTypeMbr, "brdfTypeMbr" },
207 { icSigBrdfFunctionMbr, "brdfFunctionMbr" },
208 { icSigBrdfParamsPerChannelMbr, "brdfParamsPerChannelMbr" },
209 { icSigBrdfTransformMbr, "brdfTransformMbr" },
210 { 0, NULL },
211};
212
214{
215 m_pTagStruct = pTagStruct;
216 m_pElemNameSigTable = g_IccStructBRDFMbrTable;
217}
218
219
224
225
227{
228 CIccStructBRDF *rv = new CIccStructBRDF(pTagStruct);
229
230 return rv;
231}
232
233
235{
236 CIccTag* pTag = GetElem(icSigBrdfTypeMbr);
237
238 if (pTag)
239 {
240 if (pTag->GetType() == icSigSignatureType)
241 {
242 CIccTagSignature* pTagSig = dynamic_cast<CIccTagSignature*>(pTag);
243 if (pTagSig)
244 return (icSigBRDFType)pTagSig->GetValue();
245 }
246 }
248}
249
250
252{
253 CIccTag* pTag = GetElem(icSigBrdfFunctionMbr);
254
255 if (pTag)
256 {
257 if (pTag->GetType() == icSigSignatureType)
258 {
259 CIccTagSignature* pTagSig = dynamic_cast<CIccTagSignature*>(pTag);
260 if (pTagSig)
261 return (icSigBRDFFunction)pTagSig->GetValue();
262 }
263 }
265}
266
267icValidateStatus CIccStructBRDF::Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile/* = NULL*/) const
268{
270 if (m_pTagStruct) {
271 if (!m_pTagStruct->FindElem(icSigBrdfTypeMbr) || !m_pTagStruct->FindElem(icSigBrdfFunctionMbr) ||
272 !m_pTagStruct->FindElem(icSigBrdfParamsPerChannelMbr) || !m_pTagStruct->FindElem(icSigBrdfTransformMbr)) {
273 CIccInfo Info;
274 std::string sSigPathName = Info.GetSigPathName(sigPath);
275
277 sReport += icMsgValidateWarning;
278 sReport += sSigPathName;
279 sReport += " - Missing required struct member(s).\n";
280 }
281 }
282
283 return icMaxStatus(rv, CIccStructUnknown::Validate(sigPath, sReport, pProfile));
284}
285
286
287
288
290 { icSigCeptBluePrimaryXYZMbr, "ceptBluePrimaryXYZMbr" },
291 { icSigCeptGreenPrimaryXYZMbr, "cptGreenPrimaryXYZMbr" },
292 { icSigCeptRedPrimaryXYZMbr, "ceptRedPrimaryXYZMbr" },
293 { icSigCeptTransferFunctionMbr, "ceptTransferFunctionMbr" },
294 { icSigCeptLumaChromaMatrixMbr, "ceptLumaChromaMatrixMbr" },
295 { icSigCeptWhitePointLuminanceMbr, "ceptWhitePointLuminanceMbr" },
296 { icSigCeptWhitePointChromaticityMbr, "ceptWhitePointChromaticityMbr" },
297 { icSigCeptEncodingRangeMbr, "ceptEncodingRangeMbr" },
298 { icSigCeptBitDepthMbr, "ceptBitDepthMbr" },
299 { icSigCeptImageStateMbr, "ceptImageStateMbr" },
300 { icSigCeptImageBackgroundMbr, "ceptImageBackgroundMbr" },
301 { icSigCeptViewingSurroundMbr, "ceptViewingSurroundMbr" },
302 { icSigCeptAmbientIlluminanceMbr, "ceptAmbientIlluminanceMbr" },
303 { icSigCeptAmbientWhitePointLuminanceMbr, "ceptAmbientWhitePointLuminanceMbr" },
304 { icSigCeptAmbientWhitePointChromaticityMbr, "ceptAmbientWhitePointChromaticityMbr" },
305 { icSigCeptViewingFlareMbr, "ceptViewingFlareMbr" },
306 { icSigCeptValidRelativeLuminanceRangeMbr, "ceptValidRelativeLuminanceRangeMbr" },
307 { icSigCeptMediumWhitePointLuminanceMbr, "ceptMediumWhitePointLuminanceMbr" },
308 { icSigCeptMediumWhitePointChromaticityMbr, "ceptMediumWhitePointChromaticityMbr" },
309 { icSigCeptMediumBlackPointLuminanceMbr, "ceptMediumBlackPointLuminanceMbr" },
310 { icSigCeptMediumBlackPointChromaticityMbr, "ceptMediumBlackPointChromaticityMbr" },
311 { 0, NULL },
312};
313
315{
316 m_pTagStruct = pTagStruct;
317 m_pElemNameSigTable = g_IccStructColorEncodingParamsMbrTable;
318}
319
320
325
326
333
334
335
337 { icSigCinfNameMbr, "cinfNameMbr" },
338 { icSigCinfLocalizedNameMbr, "cinfLocalizedNameMbr" },
339 { icSigCinfPcsDataMbr, "cinfPcsDataMbr" },
340 { icSigCinfSpectralDataMbr, "cinfSpectralDataMbr" },
341 { 0, NULL },
342};
343
345{
346 m_pTagStruct = pTagStruct;
347 m_pElemNameSigTable = g_IccStructColorantInfoMbrTable;
348}
349
350
355
356
358{
360
361 return rv;
362}
363
364
365icValidateStatus CIccStructColorantInfo::Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile/* = NULL*/) const
366{
368 if (m_pTagStruct) {
369 if (!m_pTagStruct->FindElem(icSigCinfNameMbr)) {
370 CIccInfo Info;
371 std::string sSigPathName = Info.GetSigPathName(sigPath);
372
374 sReport += icMsgValidateWarning;
375 sReport += sSigPathName;
376 sReport += " - Missing required struct member(s).\n";
377 }
378 }
379
380 return icMaxStatus(rv, CIccStructUnknown::Validate(sigPath, sReport, pProfile));
381}
382
383
384
385
387 { icSigMeasBackingMbr, "measBackingMbr" },
388 { icSigMeasFlareMbr, "measFlareMbr" },
389 { icSigMeasGeometryMbr, "measGeometryMbr" },
390 { icSigMeasIlluminantMbr, "measIlluminantMbr" },
391 { icSigMeasIlluminantRangeMbr, "measIlluminantRangeMbr" },
392 { icSigMeasModeMbr, "measModeMbr" },
393 { 0, NULL },
394};
395
397{
398 m_pTagStruct= pTagStruct;
399 m_pElemNameSigTable = g_IccStructMeasurementInfoElemTable;
400}
401
402
407
408
410{
412
413 return rv;
414}
415
416
417
418
420 {icSigNmclBrdfColorimetricMbr, "nmclBrdfColorimetricMbr"},
421 {icSigNmclBrdfColorimetricParamsMbr, "nmclBrdfColorimetricParamsMbr"},
422 {icSigNmclBrdfSpectralMbr, "nmclBrdfSpectralMbr"},
423 {icSigNmclBrdfSpectralParamsMbr, "nmclBrdfSpectralParamsMbr"},
424 {icSigNmclDeviceDataMbr, "nmclDeviceDataMbr"},
425 {icSigNmclLocalizedNameMbr, "nmclLocalizedNameMbr"},
426 {icSigNmclNameMbr, "nmclNameNmClrMbr"},
427 {icSigNmclNormalMapMbr, "nmclNormalMapNmClrMbr"},
428 {icSigNmclPcsDataMbr, "nmclPcsDataMbr"},
429 {icSigNmclSpectralDataMbr, "nmclSpectralDataMbr"},
430 {icSigNmclSpectralOverBlackMbr, "nmclSpectralOverBlackMbr"},
431 {icSigNmclSpectralOverGrayMbr, "nmclSpectralOverGrayMbr"},
432 {icSigNmclTintMbr, "nmclTintMbr"},
433 {0, NULL},
434};
435
437{
438 m_pTagStruct = pTagStruct;
439 m_pElemNameSigTable = g_IccStructNamedColorMbrTable;
440}
441
442
447
448
450{
451 CIccStructNamedColor *rv = new CIccStructNamedColor(pTagStruct);
452
453 return rv;
454}
455
456
458{
459 CIccTag *pTag = m_pTagStruct->FindElem(icSigNmclNameMbr);
460
461 if (pTag && pTag->GetType()==icSigUtf8TextType) {
462 CIccTagUtf8Text *pText = (CIccTagUtf8Text*)pTag;
463
464 return std::string((char*)pText->GetText());
465 }
466
467 return "";
468}
469
471{
472 CIccTag *pTag = GetElem(sigElem);
473 if (pTag && pTag->IsNumArrayType())
474 return (CIccTagNumArray*)pTag;
475
476 return NULL;
477}
478
480 icFloatNumber tint,
481 CIccTagNumArray *pZero,
482 icSignature sigElem,
483 icUInt32Number nSamples) const
484{
485
486 if (tint<0.0f)
487 tint = 0.0f;
488 else if (tint>1.0f)
489 tint = 1.0f;
490
491 CIccTagNumArray *pData;
492 CIccTagNumArray *pTint;
493
494 pData = GetNumArray(sigElem);
495 pTint = GetNumArray(icSigNmclTintMbr);
496
497 if (!pData || !nSamples)
498 return false;
499
500 int nEntries = pData->GetNumValues()/nSamples;
501 if (nEntries<1)
502 return false;
503
504 bool bNoZero;
505 bool bNeedZero;
506 icFloatNumber pos;
507
508 if (pTint) {
509 if (pTint->GetNumValues()!=nEntries)
510 return false;
511
512 if (!pTint->ValuePos(pos, tint, bNoZero))
513 return false;
514
515 bNeedZero = (pos<0.0f);
516
517 if (bNoZero)
518 pos = (pos + 1.0f)/nEntries;
519 else
520 pos = pos / (nEntries-1.0f);
521 }
522 else {
523 bNoZero = true;
524 bNeedZero = true;
525 pos = tint;
526 }
527
528 icFloatNumber vals[256];
529 icFloatNumber *zeroVals=NULL;
530
531 if (bNoZero) {
532 if (!pZero || pZero->GetNumValues()!=nSamples)
533 return false;
534
535 if (bNeedZero) {
536 if (nSamples<256)
537 zeroVals = vals;
538 else if (bNeedZero)
539 zeroVals = new icFloatNumber[nSamples];
540
541 pZero->GetValues(zeroVals, 0, nSamples);
542 }
543 else {
544 zeroVals = vals;
545 }
546 }
547
548 bool rv = pData->Interpolate(dstColor, pos, nSamples, zeroVals);
549
550 if (zeroVals && zeroVals!=vals)
551 delete [] zeroVals;
552
553 return rv;
554}
555
556
557icValidateStatus CIccStructNamedColor::Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile/* = NULL*/) const
558{
560 if (m_pTagStruct) {
561 if (m_pTagStruct->GetTagStructType()==icSigNamedColorStruct && !m_pTagStruct->FindElem(icSigNmclNameMbr)) {
562 CIccInfo Info;
563 std::string sSigPathName = Info.GetSigPathName(sigPath);
564
566 sReport += icMsgValidateWarning;
567 sReport += sSigPathName;
568 sReport += " - Missing required struct member(s).\n";
569 }
570 }
571
572 return icMaxStatus(rv, CIccStructUnknown::Validate(sigPath, sReport, pProfile));
573}
574
575
577 {icSigPinfAttributesMbr, "pinfAttributesMbr"},
578 {icSigPinfProfileDescMbr, "pinfProfileDescMbr"},
579 {icSigPinfProfileIDMbr, "pinfProfileIDMbr"},
580 {icSigPinfManufacturerDescMbr, "pinfManufacturerDescMbr"},
581 {icSigPinfManufacturerSigMbr, "pinfManufacturerSigMbr"},
582 {icSigPinfModelDescMbr, "pinfModelDescMbr"},
583 {icSigPinfModelSigMbr, "oinfModelSigMbr"},
584 {icSigPinfRenderTransformMbr, "pinfRenderTransformMbr"},
585 {icSigPinfTechnologyMbr, "pinfTechnologyMbr"},
586 { 0, NULL },
587};
588
590{
591 m_pTagStruct = pTagStruct;
592 m_pElemNameSigTable = g_IccStructProfileInfoMbrTable;
593}
594
595
600
601
603{
604 CIccStructProfileInfo *rv = new CIccStructProfileInfo(pTagStruct);
605
606 return rv;
607}
608
609
610
612 { icSigTnt0DeviceDataMbr, "tnt0DeviceDataMbr" },
613 { icSigTnt0PcsDataMbr, "tnt0PcsDataMbr" },
614 { icSigTnt0SpectralDataMbr, "tnt0SpectralDataMbr" },
615 { icSigTnt0SpectralOverBlackMbr, "tnt0SpectralOverBlackMbr" },
616 { icSigTnt0SpectralOverGrayMbr, "tnt0SpectralOverGrayMbr" },
617 { 0, NULL },
618};
619
621{
622 m_pTagStruct = pTagStruct;
623 m_pElemNameSigTable = g_IccStructTintZeroMbrTable;
624}
625
626
631
632
634{
635 CIccStructTintZero *rv = new CIccStructTintZero(pTagStruct);
636
637 return rv;
638}
639
640#ifdef USEREFICCMAXNAMESPACE
641} //namespace refIccMAX
642#endif
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
char icChar
Definition IccDefs.h:109
icValidateStatus
Definition IccDefs.h:118
@ icValidateOK
Definition IccDefs.h:119
@ icValidateWarning
Definition IccDefs.h:120
@ icValidateCriticalError
Definition IccDefs.h:122
static SIccElemNameSig g_IccStructColorantInfoMbrTable[]
static SIccElemNameSig g_IccStructColorEncodingParamsMbrTable[]
static SIccElemNameSig g_IccStructNamedColorMbrTable[]
static SIccElemNameSig g_IccStructBRDFMbrTable[]
static SIccElemNameSig g_IccStructMeasurementInfoElemTable[]
static SIccElemNameSig g_IccStructProfileInfoMbrTable[]
static SIccElemNameSig g_IccStructTintZeroMbrTable[]
File: IccStructBasic.h.
File: IccStructFactory.h.
const icChar * szName
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
std::string icGetSigPath(icUInt32Number nSig)
Definition IccUtil.cpp:1191
const char * icMsgValidateWarning
Definition IccUtil.cpp:90
File: IccUtil.h.
unsigned int icUInt32Number
Type: Class.
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
Class: CIccStructBRDF.
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
virtual ~CIccStructBRDF()
CIccStructBRDF(CIccTagStruct *pTagStruct=NULL)
virtual icSigBRDFType GetBRDFType() const
virtual icSigBRDFFunction GetBRDFFunction() const
Class: CIccStructColorEncodingParams.
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
CIccStructColorEncodingParams(CIccTagStruct *pTagStruct=NULL)
Class: CIccStructColorantInfo.
CIccStructColorantInfo(CIccTagStruct *pTagStruct=NULL)
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Class: CIccStructMeasurementInfo.
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
CIccStructMeasurementInfo(CIccTagStruct *pTagStruct=NULL)
Class: CIccStructNamedColor.
CIccStructNamedColor(CIccTagStruct *pTagStruct=NULL)
CIccTagNumArray * GetNumArray(icSignature sigElem) const
icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile) const
bool GetTint(icFloatNumber *dstColor, icFloatNumber tint, CIccTagNumArray *pZero, icSignature sigElem, icUInt32Number nSamples) const
std::string getName() const
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
Class: CIccStructProfileInfo.
CIccStructProfileInfo(CIccTagStruct *pTagStruct=NULL)
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
Class: CIccStructTintZero.
CIccStructTintZero(CIccTagStruct *pTagStruct=NULL)
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
Class: CIccStructUnknown.
virtual std::string GetElemName(icSignature sigElem) const
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
virtual IIccStruct * NewCopy(CIccTagStruct *pNewTagStruct) const
CIccStructUnknown(CIccTagStruct *pTagStruct=NULL)
virtual icSignature GetElemSig(const icChar *szElemName) const
CIccTag * GetElem(icSignature sigElem) const
virtual void Describe(std::string &sDescription, int nVerboseness) const
Class: CIccTag.
virtual icTagTypeSignature GetType() const
Function: GetType()
virtual bool IsNumArrayType() const
Class: CIccTagNumArray.
virtual bool Interpolate(icFloatNumber *DstVector, icFloatNumber pos, icUInt32Number nVectorSize=1, icFloatNumber *zeroVals=NULL) const =0
virtual bool GetValues(icFloatNumber *DstVector, icUInt32Number nStart=0, icUInt32Number nVectorSize=1) const =0
virtual icUInt32Number GetNumValues() const =0
virtual bool ValuePos(icFloatNumber &DstPos, icFloatNumber val, bool &bNoZero) const =0
Class: CIccTagSignature.
icUInt32Number GetValue() const
Class: CIccTagStruct.
Class: CIccTagUtf8Text()
const icUChar * GetText() const
Class: IIccStruct.
#define icSigUnknownType
Convenience Enum Definitions - Not defined in ICC specification.
@ icSigCeptMediumWhitePointLuminanceMbr
@ icSigCeptViewingSurroundMbr
@ icSigCeptLumaChromaMatrixMbr
@ icSigCeptViewingFlareMbr
@ icSigCeptMediumBlackPointLuminanceMbr
@ icSigCeptImageBackgroundMbr
@ icSigCeptWhitePointLuminanceMbr
@ icSigCeptMediumWhitePointChromaticityMbr
@ icSigCeptImageStateMbr
@ icSigCeptRedPrimaryXYZMbr
@ icSigCeptValidRelativeLuminanceRangeMbr
@ icSigCeptTransferFunctionMbr
@ icSigCeptAmbientWhitePointChromaticityMbr
@ icSigCeptGreenPrimaryXYZMbr
@ icSigCeptWhitePointChromaticityMbr
@ icSigCeptBitDepthMbr
@ icSigCeptEncodingRangeMbr
@ icSigCeptBluePrimaryXYZMbr
@ icSigCeptAmbientIlluminanceMbr
@ icSigCeptMediumBlackPointChromaticityMbr
@ icSigCeptAmbientWhitePointLuminanceMbr
@ icSigMeasBackingMbr
@ icSigMeasFlareMbr
@ icSigMeasGeometryMbr
@ icSigMeasModeMbr
@ icSigMeasIlluminantRangeMbr
@ icSigMeasIlluminantMbr
icSigBRDFType
BRDF type signatures.
icUInt32Number icSignature
@ icSigNmclSpectralOverBlackMbr
@ icSigNmclPcsDataMbr
@ icSigNmclNameMbr
@ icSigNmclBrdfSpectralParamsMbr
@ icSigNmclSpectralOverGrayMbr
@ icSigNmclLocalizedNameMbr
@ icSigNmclTintMbr
@ icSigNmclBrdfSpectralMbr
@ icSigNmclBrdfColorimetricMbr
@ icSigNmclDeviceDataMbr
@ icSigNmclNormalMapMbr
@ icSigNmclSpectralDataMbr
@ icSigNmclBrdfColorimetricParamsMbr
@ icSigUtf8TextType
@ icSigSignatureType
@ icSigNamedColorStruct
@ icSigTnt0SpectralOverBlackMbr
@ icSigTnt0SpectralDataMbr
@ icSigTnt0DeviceDataMbr
@ icSigTnt0PcsDataMbr
@ icSigTnt0SpectralOverGrayMbr
icSigBRDFFunction
BRDF function signatures.
@ icSigPinfManufacturerSigMbr
@ icSigPinfTechnologyMbr
@ icSigPinfModelDescMbr
@ icSigPinfRenderTransformMbr
@ icSigPinfManufacturerDescMbr
@ icSigPinfAttributesMbr
@ icSigPinfProfileDescMbr
@ icSigPinfModelSigMbr
@ icSigPinfProfileIDMbr
@ icSigCinfNameMbr
@ icSigCinfPcsDataMbr
@ icSigCinfSpectralDataMbr
@ icSigCinfLocalizedNameMbr
@ icSigBrdfFunctionMbr
@ icSigBrdfTypeMbr
@ icSigBrdfParamsPerChannelMbr
@ icSigBrdfTransformMbr