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

#include <IccTagXml.h>

+ Inheritance diagram for CIccTagXmlEmbeddedNormalImage:
+ Collaboration diagram for CIccTagXmlEmbeddedNormalImage:

Public Member Functions

virtual IIccExtensionTagGetExtension ()
 
virtual const char * GetGlassName () const
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
virtual ~CIccTagXmlEmbeddedNormalImage ()
 
- Public Member Functions inherited from CIccTagEmbeddedNormalImage
 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 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.
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 
- Public Attributes inherited from CIccTagEmbeddedNormalImage
icImageEncodingType m_nEncodingFormat
 
icUInt32Number m_nSeamlesIndicator
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 
- Protected Attributes inherited from CIccTagEmbeddedNormalImage
icUInt32Number m_nSize
 
icUInt8Numberm_pData
 
- Private Member Functions inherited from CIccTagXml
virtual const char * GetExtClassName () const
 
virtual const char * GetExtDerivedClassName () const
 
virtual ~CIccTagXml (void)
 

Detailed Description

Definition at line 698 of file IccTagXml.h.

Constructor & Destructor Documentation

◆ ~CIccTagXmlEmbeddedNormalImage()

virtual CIccTagXmlEmbeddedNormalImage::~CIccTagXmlEmbeddedNormalImage ( )
inlinevirtual

Definition at line 701 of file IccTagXml.h.

701{}

Member Function Documentation

◆ GetExtension()

virtual IIccExtensionTag * CIccTagXmlEmbeddedNormalImage::GetExtension ( )
inlinevirtual

Reimplemented from CIccTag.

Definition at line 705 of file IccTagXml.h.

705{ return this; }

◆ GetGlassName()

virtual const char * CIccTagXmlEmbeddedNormalImage::GetGlassName ( ) const
inlinevirtual

Definition at line 703 of file IccTagXml.h.

703{ return "CIccTagXmlEmbeddedNormalImage"; }

◆ ParseXml()

bool CIccTagXmlEmbeddedNormalImage::ParseXml ( xmlNode * pNode,
std::string & parseStr )
virtual

Implements CIccTagXml.

Definition at line 5176 of file IccTagXml.cpp.

5177{
5178 // parse tag
5179 xmlNode *tagNode;
5180
5181 tagNode = icXmlFindNode(pNode, "NormalImage");
5182 if (!tagNode)
5183 return false;
5184
5185 m_nSeamlesIndicator = atoi(icXmlAttrValue(tagNode, "SeamlessIndicator", "0"));
5186 m_nEncodingFormat = (icImageEncodingType)atoi(icXmlAttrValue(tagNode, "EncodingFormat", "0"));
5187
5188 xmlNode *pImageNode;
5189 pImageNode = icXmlFindNode(tagNode->children, "Image");
5190
5191 if (pImageNode) {
5192 const char *filename = icXmlAttrValue(pImageNode, "File");
5193 if (!filename || !filename[0]) {
5194 filename = icXmlAttrValue(pImageNode, "Filename");
5195 }
5196
5197 // file exists
5198 if (filename[0]) {
5199 CIccIO *file = IccOpenFileIO(filename, "rb");
5200 if (!file) {
5201 parseStr += "Error! - File '";
5202 parseStr += filename;
5203 parseStr += "' not found.\n";
5204 delete file;
5205 return false;
5206 }
5207
5208 icUInt32Number num = file->GetLength();
5209
5210 SetSize(num);
5211 icUInt8Number *dst = GetData(0);
5212 if (file->Read8(dst, num) != num) {
5213 perror("Read-File Error");
5214 parseStr += "'";
5215 parseStr += filename;
5216 parseStr += "' may not be a valid binary file'.\n";
5217 delete file;
5218 return false;
5219 }
5220 delete file;
5221 return true;
5222 }
5223 // no file
5224 else if (pImageNode->children && pImageNode->children->content) {
5225 unsigned long nSize = icXmlGetHexDataSize((const icChar*)pImageNode->children->content);
5226
5227 SetSize(nSize);
5228 if (m_pData) {
5229 if (icXmlGetHexData(m_pData, (const icChar*)pImageNode->children->content, m_nSize) != m_nSize)
5230 return false;
5231 }
5232 return true;
5233 }
5234 }
5235 return false;
5236}
char icChar
Definition IccDefs.h:109
CIccIO * IccOpenFileIO(const icChar *szFilename, const char *szAttr)
Definition IccIoXml.cpp:100
icUInt32Number icXmlGetHexDataSize(const char *szText)
xmlNode * icXmlFindNode(xmlNode *pNode, const char *szNodeName)
icUInt32Number icXmlGetHexData(void *pBuf, const char *szText, icUInt32Number nBufSize)
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault)
unsigned int icUInt32Number
Type: Class.
Definition IccIO.h:97
virtual icInt32Number GetLength()
Definition IccIO.h:130
virtual icInt32Number Read8(void *pBuf8, icInt32Number nNum=1)
Definition IccIO.h:104
icImageEncodingType m_nEncodingFormat
icUInt8Number * GetData(icUInt32Number index=0)
icUInt32Number m_nSeamlesIndicator
bool SetSize(icUInt32Number nSize, bool bZeroNew=true)
Name: CIccTagEmbeddedNormalImage::SetSize.
unsigned char icUInt8Number
Number definitions.
icImageEncodingType

References CIccIO::GetLength(), IccOpenFileIO(), icXmlAttrValue(), icXmlFindNode(), icXmlGetHexData(), icXmlGetHexDataSize(), and CIccIO::Read8().

+ Here is the call graph for this function:

◆ ToXml()

bool CIccTagXmlEmbeddedNormalImage::ToXml ( std::string & xml,
std::string blanks = "" )
virtual

Implements CIccTagXml.

Definition at line 5238 of file IccTagXml.cpp.

5239{
5240 char buf[200];
5241
5242 xml += blanks + "<NormalImage";
5243 sprintf(buf, " SeamlessIndicator=\"%d\"", m_nSeamlesIndicator);
5244 xml += buf;
5245
5246 sprintf(buf, " EncodingFormat=\"%d\"", m_nEncodingFormat);
5247 xml += buf;
5248
5249 if (!m_nSize) {
5250 xml += blanks + "/>\n";
5251 }
5252 else {
5253 xml += ">\n";
5254 xml += blanks + " <Image>\n";
5255 icXmlDumpHexData(xml, blanks + " ", m_pData, m_nSize);
5256 xml += blanks + " </Image>\n";
5257 xml += blanks + "</NormalImage>\n";
5258 }
5259
5260 return true;
5261}
icUInt32Number icXmlDumpHexData(std::string &xml, std::string blanks, void *pBuf, icUInt32Number nBufSize)

References icXmlDumpHexData().

+ Here is the call graph for this function:

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