71#if !defined(_ICCPROFILE_H)
79#if defined(__cplusplus) && defined(USEREFICCMAXNAMESPACE)
113typedef std::list<IccTagEntry> TagEntryList;
122typedef struct {
CIccTag *ptr;} IccTagPtr;
132typedef std::list<IccTagPtr> TagPtrList;
138}icProfileIDSaveMethod;
153 CIccProfile(
const CIccProfile &Profile);
154 CIccProfile &operator=(
const CIccProfile &Profile);
155 virtual CIccProfile* NewCopy()
const {
return new CIccProfile(*
this); }
156 virtual CIccProfile* NewProfile()
const {
return new CIccProfile(); }
157 virtual ~CIccProfile();
159 virtual const char *GetClassName()
const {
return "CIccProfile"; }
163 TagEntryList *m_Tags;
172 bool ReadTags(CIccProfile* pProfile);
174 bool Attach(
CIccIO *pIO,
bool bUseSubProfile=
false);
176 bool HasIO() {
return m_pAttachIO != NULL; }
178 bool Read(
CIccIO *pIO,
bool bUseSubProfile=
false);
180 bool Write(
CIccIO *pIO, icProfileIDSaveMethod nWriteId=icVersionBasedID);
185 icValidateStatus Validate(std::string &sReport, std::string sSigPath=
"")
const;
189 bool AreTagsUnique()
const;
219 IccTagEntry* GetTag(
CIccTag *pTag)
const;
220 bool ReadBasic(
CIccIO *pIO);
221 bool LoadTag(IccTagEntry *pTagEntry,
CIccIO *pIO,
bool bReadAll=
false);
224 CIccIO* ConnectSubProfile(
CIccIO *pIO,
bool bOwnIO)
const;
228 bool CheckTagExclusion(std::string &sReport)
const;
234 bool CheckFileSize(
CIccIO *pIO)
const;
238 TagPtrList *m_TagVals;
264typedef CIccProfile* CIccProfilePtr;
268#ifdef USEREFICCMAXNAMESPACE
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
CIccProfile * ValidateIccProfile(CIccIO *pIO, std::string &sReport, icValidateStatus &nStatus)
Name: ValidateIccProfile.
bool SaveIccProfile(const icChar *szFilename, CIccProfile *pIcc, icProfileIDSaveMethod nWriteId)
Name: SaveIccProfile.
CIccProfile * ReadIccProfile(const icChar *szFilename, bool bUseSubProfile)
Name: ReadIccProfile.
CIccProfile * OpenIccProfile(const icChar *szFilename, bool bUseSubProfile)
Name: OpenIccProfile.
void CalcProfileID(CIccIO *pIO, icProfileID *pProfileID)
Name: CalcProfileID.
unsigned int icUInt32Number
Class: CIccTagMultiProcessElement.
Class: CIccTagSpectralViewingConditions.
Lists of tags, tags, profile header and profile structure.