I noticed that CIccInfo::GetProfileID returns an ICC v4 profile id that consists of 16 characters. This is generated by taking the high byte nibble from each of the 16 bytes that make up the actual id. Is it intentional that CIccInfo::GetProfileID returns a mangled id? I would expect that it returns a hex representation of the full 16 bytes of the id, therefore returning a hex string consisting of 32 bytes, something like this:
Hi,
I noticed that CIccInfo::GetProfileID returns an ICC v4 profile id that consists of 16 characters. This is generated by taking the high byte nibble from each of the 16 bytes that make up the actual id. Is it intentional that CIccInfo::GetProfileID returns a mangled id? I would expect that it returns a hex representation of the full 16 bytes of the id, therefore returning a hex string consisting of 32 bytes, something like this:
const icChar *CIccInfo::GetProfileID(icProfileID *profileID)
{
icChar buf;
icChar temp;
for (int i=0; i<16; i++) {
sprintf(temp, "%02x", profileID->ID8_);
buf = temp;
buf = temp;
}
sprintf(m_szStr,"%.32s",buf);
return m_szStr;
}
Best Regards
Stephan_
platform specifics, like byte swapping are to be done by the user not by the icProfileID data