ICCLIB implements support for reading and writing of color profile files that conform to the International Color Consortium (ICC) Profile Format Specification, Version 3.4. The ICC Profile Format is a cross-platform device profile format that can be used to translate color data created on one device into another device's native color space. See the profile specification at color.org. In summary ICCLIB provides support for all version 3.4 header elements, Tags, and Tag Types, conversion to/from machine native representation of all data types, user-defined Tags, adding/deleting Tags, Tag type sharing within a file (often used for sharing LUTs amongst intents), reading/writing embedded profiles, a single function for transforming color values through a profile (including support for intents, forward and reverse transforms, gamut lookup or preview lookup), support and code examples for creating all profile types, monochrome, matrix, and Lut, and it loads Tag Types on demand to conserve memory space.
The library is available as 32-bit and 64-bit: