Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
CIccTagEmbeddedNormalImage Class Reference

Class: CIccTagEmbeddedNormalImage. More...

#include <IccTagBasic.h>

+ Inheritance diagram for CIccTagEmbeddedNormalImage:
+ Collaboration diagram for CIccTagEmbeddedNormalImage:

Public Member Functions

 CIccTagEmbeddedNormalImage (const CIccTagEmbeddedNormalImage &IENI)
 Name: CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage.
 
 CIccTagEmbeddedNormalImage (int nSize=1)
 Name: CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagEmbeddedNormalImage::Describe.
 
virtual const icCharGetClassName () const
 
icUInt8NumberGetData (icUInt32Number index=0)
 
icUInt32Number GetSize () const
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagEmbeddedNormalImageoperator= (const CIccTagEmbeddedNormalImage &NormalTag)
 Name: CIccTagEmbeddedNormalImage::operator=.
 
icUInt8Numberoperator[] (icUInt32Number index)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagEmbeddedNormalImage::Read.
 
bool SetSize (icUInt32Number nSize, bool bZeroNew=true)
 Name: CIccTagEmbeddedNormalImage::SetSize.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 Name: CIccTagEmbeddedNormalImage::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagEmbeddedNormalImage::Write.
 
virtual ~CIccTagEmbeddedNormalImage ()
 Name: CIccTagEmbeddedNormalImage::~CIccTagEmbeddedNormalImage.
 
- Public Member Functions inherited from CIccTag
 CIccTag ()
 Name: CIccTag::CIccTag.
 
virtual void DetachIO ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual IIccExtensionTagGetExtension ()
 
virtual icArraySignature GetTagArrayType () const
 
virtual icStructSignature GetTagStructType () const
 
virtual bool IsArrayType ()
 
virtual bool IsMBBType ()
 
virtual bool IsNumArrayType () const
 
virtual bool IsSupported ()
 Function: IsSupported(size, pIO) - Check if tag fully supported for apply purposes.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO, CIccProfile *pProfile)
 Function: Read(size, pIO) - Read tag from file.
 
virtual bool ReadAll ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual ~CIccTag ()
 Name: CIccTag::CIccTag.
 

Public Attributes

icImageEncodingType m_nEncodingFormat
 
icUInt32Number m_nSeamlesIndicator
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 

Protected Attributes

icUInt32Number m_nSize
 
icUInt8Numberm_pData
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 

Detailed Description

Class: CIccTagEmbeddedNormalImage.

Purpose: The Embedded Normal tag

Definition at line 1793 of file IccTagBasic.h.

Constructor & Destructor Documentation

◆ CIccTagEmbeddedNormalImage() [1/2]

CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage ( int nSize = 1)

Name: CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage.

Purpose: Constructor

Args: nSize =size of embedded image

Definition at line 11961 of file IccTagBasic.cpp.

11962{
11963 m_nSize = nSize;
11964 if (m_nSize < 1)
11965 m_nSize = 1;
11966 m_pData = (icUInt8Number*)calloc(nSize, sizeof(icUInt8Number));
11969}
icImageEncodingType m_nEncodingFormat
icUInt32Number m_nSeamlesIndicator
unsigned char icUInt8Number
Number definitions.
@ icPngImageType

References icPngImageType.

◆ CIccTagEmbeddedNormalImage() [2/2]

CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage ( const CIccTagEmbeddedNormalImage & IENI)

Name: CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage.

Purpose: Copy Constructor

Args: ITD = The CIccEmbeddedNormalImage object to be copied

Definition at line 11982 of file IccTagBasic.cpp.

11983{
11986 m_nSize = IENI.m_nSize;
11987
11988 m_pData = (icUInt8Number*)calloc(m_nSize, sizeof(icUInt8Number));
11989 memcpy(m_pData, IENI.m_pData, sizeof(icUInt8Number)*m_nSize);
11990}

References m_nEncodingFormat, m_nSeamlesIndicator, m_nSize, and m_pData.

◆ ~CIccTagEmbeddedNormalImage()

CIccTagEmbeddedNormalImage::~CIccTagEmbeddedNormalImage ( )
virtual

Name: CIccTagEmbeddedNormalImage::~CIccTagEmbeddedNormalImage.

Purpose: Destructor

Definition at line 12029 of file IccTagBasic.cpp.

12030{
12031 if (m_pData)
12032 free(m_pData);
12033}

Member Function Documentation

◆ Describe()

void CIccTagEmbeddedNormalImage::Describe ( std::string & sDescription,
int nVerboseness )
virtual

Name: CIccTagEmbeddedNormalImage::Describe.

Purpose: Dump data associated with the tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

Definition at line 12138 of file IccTagBasic.cpp.

12139{
12140 icChar buf[128];
12141
12142 sprintf(buf, "\nSeamlessIndicater: %d\n", m_nSeamlesIndicator);
12143 sDescription += buf;
12144
12145 switch (m_nEncodingFormat) {
12146 case icPngImageType:
12147 strcpy(buf, "EncodingFormat: PNG\n");
12148 break;
12149 case icTiffImageType:
12150 strcpy(buf, "EncodingFormat: TIFF\n");
12151 break;
12152 default:
12153 sprintf(buf, "EncodingFormat: %d", m_nEncodingFormat);
12154 break;
12155 }
12156 sDescription += buf;
12157
12158 sDescription += "\nImage Data:\n";
12159
12160 for (int i = 0; i < (int)m_nSize; i++) {
12161 if (!(i & 0x1f))
12162 sDescription += "\n";
12163 sprintf(buf, "%02X", m_pData[i]);
12164 sDescription += buf;
12165 }
12166 sDescription += "\n";
12167}
char icChar
Definition IccDefs.h:109
@ icTiffImageType

References icPngImageType, and icTiffImageType.

◆ GetClassName()

virtual const icChar * CIccTagEmbeddedNormalImage::GetClassName ( ) const
inlinevirtual

Reimplemented from CIccTag.

Definition at line 1803 of file IccTagBasic.h.

1803{ return "CIccTagEmbeddedNormalImage"; }

◆ GetData()

icUInt8Number * CIccTagEmbeddedNormalImage::GetData ( icUInt32Number index = 0)
inline

Definition at line 1813 of file IccTagBasic.h.

1813{ return &m_pData[index]; }

◆ GetSize()

icUInt32Number CIccTagEmbeddedNormalImage::GetSize ( ) const
inline

Definition at line 1810 of file IccTagBasic.h.

1810{ return m_nSize; }

◆ GetType()

virtual icTagTypeSignature CIccTagEmbeddedNormalImage::GetType ( ) const
inlinevirtual

Function: GetType()

Purpose: Get Tag Type. Each derived tag will implement it's own GetType() function.

Reimplemented from CIccTag.

Definition at line 1802 of file IccTagBasic.h.

@ icSigEmbeddedNormalImageType

References icSigEmbeddedNormalImageType.

◆ NewCopy()

virtual CIccTag * CIccTagEmbeddedNormalImage::NewCopy ( ) const
inlinevirtual

Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.

Parameter(s): none

Returns a new CIccTag object that is a copy of this object.

Reimplemented from CIccTag.

Definition at line 1799 of file IccTagBasic.h.

1799{ return new CIccTagEmbeddedNormalImage(*this); }
CIccTagEmbeddedNormalImage(int nSize=1)
Name: CIccTagEmbeddedNormalImage::CIccTagEmbeddedNormalImage.

◆ operator=()

CIccTagEmbeddedNormalImage & CIccTagEmbeddedNormalImage::operator= ( const CIccTagEmbeddedNormalImage & NormalImageTag)

Name: CIccTagEmbeddedNormalImage::operator=.

Purpose: Copy Operator

Args: DataTag = The CIccTagData object to be copied

Definition at line 12003 of file IccTagBasic.cpp.

12004{
12005 if (&NormalImageTag == this)
12006 return *this;
12007
12009 m_nEncodingFormat = NormalImageTag.m_nEncodingFormat;
12010 m_nSize = NormalImageTag.m_nSize;
12011
12012 if (m_pData)
12013 free(m_pData);
12014 m_pData = (icUInt8Number*)calloc(m_nSize, sizeof(icUInt8Number));
12015 memcpy(m_pData, NormalImageTag.m_pData, sizeof(icUInt8Number)*m_nSize);
12016
12017 return *this;
12018}

References m_nEncodingFormat, m_nSeamlesIndicator, m_nSize, and m_pData.

◆ operator[]()

icUInt8Number & CIccTagEmbeddedNormalImage::operator[] ( icUInt32Number index)
inline

Definition at line 1812 of file IccTagBasic.h.

1812{ return m_pData[index]; }

◆ Read()

bool CIccTagEmbeddedNormalImage::Read ( icUInt32Number size,
CIccIO * pIO )
virtual

Name: CIccTagEmbeddedNormalImage::Read.

Purpose: Read in the tag contents into a data block

Args: size - # of bytes in tag, pIO - IO object to read tag from

Return: true = successful, false = failure

Reimplemented from CIccTag.

Definition at line 12050 of file IccTagBasic.cpp.

12051{
12053
12054 if (sizeof(icTagTypeSignature) +
12055 sizeof(icUInt32Number) +
12056 sizeof(icUInt32Number) +
12057 sizeof(icUInt32Number) +
12058 sizeof(icUInt8Number) > size)
12059 return false;
12060
12061 if (!pIO) {
12062 return false;
12063 }
12064
12065 if (!pIO->Read32(&sig))
12066 return false;
12067
12068 if (!pIO->Read32(&m_nReserved))
12069 return false;
12070
12071 if (!pIO->Read32(&m_nSeamlesIndicator))
12072 return false;
12073
12074 if (!pIO->Read32(&m_nEncodingFormat))
12075 return false;
12076
12077 icUInt32Number nNum = size - 4 * sizeof(icUInt32Number);
12078
12079 if (!SetSize(nNum))
12080 return false;
12081
12082 if (pIO->Read8(m_pData, nNum) != (icInt32Number)nNum)
12083 return false;
12084
12085 return true;
12086}
icArraySignature sig
icTagTypeSignature
unsigned int icUInt32Number
virtual icInt32Number Read8(void *pBuf8, icInt32Number nNum=1)
Definition IccIO.h:104
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
bool SetSize(icUInt32Number nSize, bool bZeroNew=true)
Name: CIccTagEmbeddedNormalImage::SetSize.
icUInt32Number m_nReserved
long icInt32Number

References CIccIO::Read32(), CIccIO::Read8(), and sig.

+ Here is the call graph for this function:

◆ SetSize()

bool CIccTagEmbeddedNormalImage::SetSize ( icUInt32Number nSize,
bool bZeroNew = true )

Name: CIccTagEmbeddedNormalImage::SetSize.

Purpose: Sets the size of the data array.

Args: nSize - number of data entries, bZeroNew - flag to zero newly formed values

Definition at line 12180 of file IccTagBasic.cpp.

12181{
12182 if (m_nSize == nSize)
12183 return true;
12184
12185 m_pData = (icUInt8Number*)icRealloc(m_pData, nSize * sizeof(icUInt8Number));
12186
12187 if (!m_pData) {
12188 m_nSize = 0;
12189 return false;
12190 }
12191
12192 if (bZeroNew && nSize > m_nSize) {
12193 memset(&m_pData[m_nSize], 0, (nSize - m_nSize) * sizeof(icUInt8Number));
12194 }
12195 m_nSize = nSize;
12196
12197 return true;
12198}
void * icRealloc(void *ptr, size_t size)
Name: icRealloc.
Definition IccUtil.cpp:111

References icRealloc().

+ Here is the call graph for this function:

◆ Validate()

icValidateStatus CIccTagEmbeddedNormalImage::Validate ( std::string sigPath,
std::string & sReport,
const CIccProfile * pProfile = NULL ) const
virtual

Name: CIccTagEmbeddedNormalImage::Validate.

Purpose: Check tag data validity.

Args: sig = signature of tag being validated, sReport = String to add report information to

Return: icValidateStatusOK if valid, or other error status.

Reimplemented from CIccTag.

Definition at line 12215 of file IccTagBasic.cpp.

12216{
12217 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
12218
12219 CIccInfo Info;
12220 std::string sSigPathName = Info.GetSigPathName(sigPath);
12221
12222 switch (m_nSeamlesIndicator) {
12223 case 0:
12224 case 1:
12225 break;
12226 default:
12227 sReport += icMsgValidateNonCompliant;
12228 sReport += sSigPathName;
12229 sReport += " - Invalid data flag Seamless Indicator.\n";
12231 }
12232
12233 switch (m_nEncodingFormat) {
12234 case icPngImageType:
12235 if (m_nSize > 4 && m_pData) {
12236 unsigned char PNGhdr[] = { 'P', 'N', 'G' };
12237 if (memcmp(m_pData+1, PNGhdr, 3)) {
12238 sReport += icMsgValidateNonCompliant;
12239 sReport += sSigPathName;
12240 sReport += " - Non-PNG file stored as Embedded image.\n";
12242 }
12243 }
12244 break;
12245 case icTiffImageType:
12246 if (m_nSize > 4 && m_pData) {
12247 unsigned char IIhdr[] = { 'I', 'I', 42, 0 };
12248 unsigned char MMhdr[] = { 'M', 'M', 0, 42 };
12249
12250 if (memcmp(m_pData, IIhdr, 4) && memcmp(m_pData, MMhdr, 4)) {
12251 sReport += icMsgValidateNonCompliant;
12252 sReport += sSigPathName;
12253 sReport += " - Non-TIFF file stored as Embedded image.\n";
12255 }
12256 }
12257 break;
12258 default:
12259 sReport += icMsgValidateNonCompliant;
12260 sReport += sSigPathName;
12261 sReport += " - Invalid data flag Encoding Image Type.\n";
12263 }
12264
12265 return rv;
12266}
icValidateStatus
Definition IccDefs.h:118
@ icValidateNonCompliant
Definition IccDefs.h:121
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
const char * icMsgValidateNonCompliant
Definition IccUtil.cpp:91
Type: Class.
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Function: Validate Each derived tag will implement it's own IsValid() function.

References CIccInfo::GetSigPathName(), icMaxStatus(), icMsgValidateNonCompliant, icPngImageType, icTiffImageType, icValidateNonCompliant, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagEmbeddedNormalImage::Write ( CIccIO * pIO)
virtual

Name: CIccTagEmbeddedNormalImage::Write.

Purpose: Write the tag to a file

Args: pIO - The IO object to write tag to.

Return: true = succesful, false = failure

Reimplemented from CIccTag.

Definition at line 12102 of file IccTagBasic.cpp.

12103{
12105
12106 if (!pIO)
12107 return false;
12108
12109 if (!pIO->Write32(&sig))
12110 return false;
12111
12112 if (!pIO->Write32(&m_nReserved))
12113 return false;
12114
12115 if (!pIO->Write32(&m_nSeamlesIndicator))
12116 return false;
12117
12118 if (!pIO->Write32(&m_nEncodingFormat))
12119 return false;
12120
12122 return false;
12123
12124 return true;
12125}
virtual icInt32Number Write8(void *pBuf8, icInt32Number nNum=1)
Definition IccIO.h:105
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual icTagTypeSignature GetType() const
Function: GetType()

References sig, CIccIO::Write32(), and CIccIO::Write8().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_nEncodingFormat

icImageEncodingType CIccTagEmbeddedNormalImage::m_nEncodingFormat

Definition at line 1818 of file IccTagBasic.h.

Referenced by CIccTagEmbeddedNormalImage(), and operator=().

◆ m_nSeamlesIndicator

icUInt32Number CIccTagEmbeddedNormalImage::m_nSeamlesIndicator

Definition at line 1817 of file IccTagBasic.h.

Referenced by CIccTagEmbeddedNormalImage(), and operator=().

◆ m_nSize

icUInt32Number CIccTagEmbeddedNormalImage::m_nSize
protected

Definition at line 1822 of file IccTagBasic.h.

Referenced by CIccTagEmbeddedNormalImage(), and operator=().

◆ m_pData

icUInt8Number* CIccTagEmbeddedNormalImage::m_pData
protected

Definition at line 1821 of file IccTagBasic.h.

Referenced by CIccTagEmbeddedNormalImage(), and operator=().


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