2004.08.16 17:29 "[Tiff] ICC profile in tiff file on windows", by Alexander Cohen

2004.08.18 17:55 "Re: [Tiff] Re: ICC profile in tiff file on windows", by Phillip Crews

Your code that parses TIFF tags and TIFF data types should not be messing with the ICC profile data. Code that works with ICC profiles that run on a Windows platform knows that all the ICC profile is big endian ( like an "MM" TIFF file ) and should do the proper byte swapping for shorts and longs inside the ICC profile code.

BUT: if you try to read a short or long from an ICC profile with Windows code, the bytes will be in the wrong order.

The moral of the story: you might be trying to do something that a Color Management System library should do for you.

Nope, im just reading the ICC profile tag, and taking that data and passing it to the "OpenColorProfile" function in the windows API. The > same works on mac (with the mac version of the call).


HOW are you reading the tag data?

I made some simple getters for the icc profile since TIFFGetTag was not working on windows like it should, but my way gives me the same results, here's my code:

TIFFGetICCProfileData(TIFF* tif, void * data )
        if (!data) return;
        TIFFDirectory* td = &tif->tif_dir;
        memcpy( data, td->td_profileData, td->td_profileLength );

TIFFGetICCProfileSize(TIFF* tif )
        TIFFDirectory* td = &tif->tif_dir;
        return td->td_profileLength;

If you write it to a file, the file should be identical between Macintosh >and Windows.

my thoughts the same.

My Windows program uses:

   TIFFGetField(tif, TIFFTAG_ICCPROFILE, &icclen, &iccinfo);

to retrieve the color profile, and I haven't seen any problems or crashes.

If you would like me to check if your a TIFF file works properly, feel free to e-mail a copy and I'll let you know what I find.

Kind regards,