72#pragma warning( disable: 4786)
198 if (!pEmbedIO->Attach(pIO, size)) {
206 m_pProfile = pProfile ? pProfile->NewProfile() :
new CIccProfile();
208 if (pProfile && pProfile->HasIO()) {
286 icProfileIDSaveMethod bWriteId = (
m_pProfile->m_Header.profileID.ID32[0] ||
289 m_pProfile->m_Header.profileID.ID32[3]) ? icAlwaysWriteID : icVersionBasedID;
290 bool rv =
m_pProfile->Write(&embedIO, bWriteId);
311 sDescription +=
"Embedded profile in Tag\n";
319 sDescription +=
"Profile ID: %s\n";
323 sDescription +=
"Profile ID: Profile ID not calculated.\n";
324 sDescription +=
"Size: ";
325 sprintf(buf,
"%d(0x%x) bytes\n", pHdr->
size, pHdr->
size);
327 sDescription +=
"\nHeader\n";
328 sDescription +=
"------\n";
333 sprintf(buf,
"Creation Date: %d/%d/%d %02u:%02u:%02u\n",
356 sDescription +=
"Profile SubClass: Not Defined\n";
363 sprintf(buf,
"Illuminant: X=%.4lf, Y=%.4lf, Z=%.4lf\n",
371 sprintf(buf,
"Spectral PCS Range: start=%.1fnm, end=%.1fnm, steps=%d\n",
378 sDescription +=
"Spectral PCS Range: Not Defined\n";
382 sprintf(buf,
"BiSpectral Range: start=%.1fnm, end=%.1fnm, steps=%d\n",
389 sDescription +=
"BiSpectral Range: Not Defined\n";
396 sDescription +=
"MCS Color Space: Not Defined\n";
399 sDescription +=
"\nProfile Tags\n";
400 sDescription +=
"------------\n";
402 sprintf(buf,
"%28s ID %8s\t%8s\t%8s\n",
"Tag",
"Offset",
"Size",
"Pad");
404 sprintf(buf,
"%28s ------ %8s\t%8s\t%8s\n",
"----",
"------",
"----",
"---");
408 TagEntryList::iterator i, j;
413 closest = pHdr->
size;
415 if ((i != j) && (j->TagInfo.offset >= i->TagInfo.offset + i->TagInfo.size) && ((
int)j->TagInfo.offset <= closest)) {
416 closest = j->TagInfo.offset;
421 pad = closest - i->TagInfo.offset - i->TagInfo.size;
423 sprintf(buf,
"%28s %s %8d\t%8d\t%8d\n", Fmt.
GetTagSigName(i->TagInfo.sig),
424 icGetSig(buf, i->TagInfo.sig,
false), i->TagInfo.offset, i->TagInfo.size, pad);
429 sDescription +=
"No profile embedded in Tag\n";
457 sReport +=
" - No Profile defined for embedded profile tag.\n";
466 if (
m_pProfile->m_Header.colorSpace != pProfile->m_Header.colorSpace) {
469 sReport +=
" - color space does not match for embedded profile.\n";
473 if (
m_pProfile->m_Header.deviceClass != pProfile->m_Header.deviceClass) {
476 sReport +=
" - device class does not match for embedded profile.\n";
@ icValidateCriticalError
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
const char * icMsgValidateWarning
icFloatNumber icFtoD(icS15Fixed16Number num)
const char * icMsgValidateCriticalError
icFloatNumber icF16toF(icFloat16Number num)
const icChar * icGetSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
unsigned int icUInt32Number
bool Attach(CIccIO *pIO, icInt32Number nSize=0, bool bOwnIO=false)
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
bool IsProfileIDCalculated(icProfileID *profileID)
const icChar * GetVersionName(icUInt32Number val)
const icChar * GetSpectralColorSigName(icSpectralColorSignature sig)
const icChar * GetCmmSigName(icCmmSignature sig)
const icChar * GetProfileClassSigName(icProfileClassSignature sig)
const icChar * GetTagSigName(icTagSignature sig)
const icChar * GetProfileFlagsName(icUInt32Number val, bool bCheckMCS=false)
const icChar * GetPlatformSigName(icPlatformSignature sig)
const icChar * GetProfileID(icProfileID *profileID)
const icChar * GetColorSpaceSigName(icColorSpaceSignature sig)
const icChar * GetDeviceAttrName(icUInt64Number val)
std::string GetSigPathName(std::string sigPath)
const icChar * GetSubClassVersionName(icUInt32Number val)
const icChar * GetRenderingIntentName(icRenderingIntent val, bool bIsV5=false)
Class: IccTagEmbeddedProfile.
CIccTagEmbeddedProfile()
Name: CIccTagEmbedProfile::CIccTagEmbedProfile.
virtual bool Write(CIccIO *pIO)
Name: CIccTagEmbedProfile::Write.
virtual icTagTypeSignature GetType() const
Function: GetType()
CIccTagEmbeddedProfile & operator=(const CIccTagEmbeddedProfile &UnknownTag)
Name: CIccTagEmbedProfile::operator=.
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Name: CIccTagEmbedProfile::Validate.
virtual bool ReadAll()
Name: CIccTagEmbedProfile::ReadAll.
virtual void Describe(std::string &sDescription, int nVerboseness)
Name: CIccTagEmbedProfile::Describe.
virtual bool Read(icUInt32Number size, CIccIO *pIO)
Function: Read(size, pIO) - Read tag from file.
virtual ~CIccTagEmbeddedProfile()
Name: CIccTagEmbedProfile::~CIccTagEmbedProfile.
icUInt32Number m_nReserved
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.