What is the ICC file format?
An .icc file stores a color profile - standardized data tables that describe the color characteristics of a device such as a scanner, camera, monitor, or printer. Color management systems use these profiles to translate colors accurately between devices, ensuring that what appears on screen matches what prints on paper.
The format is published by the International Color Consortium (ICC), founded in 1993 by Apple, Adobe, Microsoft, and five other companies. The file opens with a fixed 128-byte header containing the profile class, color space, rendering intent, and an acsp ASCII signature at byte offset 36. A tag table follows, listing variable-length data elements that encode the actual color transforms - curves, matrices, or multi-dimensional lookup tables (cLUT).
ICC profiles are embedded inside JPEG, TIFF, PNG (iCCP chunk), and PDF documents to travel with the image data. Windows uses the identical binary format under the .icm extension; .icc is the cross-platform convention. The current production standard is ICC.1:2022 (version 4.4). An experimental extension, iccMAX (ICC.2:2019, v5), adds spectral color and multidimensional transforms but is not yet widely deployed.
macOS ColorSync and Windows Color System (ICM) provide built-in ICC support; colord and GNOME Color Manager serve the equivalent role on Linux. DisplayCAL (built on Argyll CMS) is widely used for generating display calibration profiles.
Security & safety
RISK: LOWICC profiles are pure data files (binary color math). No executable code. Installing a malformed profile can cause incorrect colors on screen but poses no security risk to the system.
Format details
in a nutshellPrograms that open ICC files
Technical details
deep spec| Magic bytes | "acsp" (0x61 0x63 0x73 0x70) at byte offset 36 in the 128-byte header; not at file offset 0 |
| Byte order | Big-endian throughout (all multi-byte integers, per ICC specification) |
| Header | Fixed 128 bytes: profile size, CMM type, version, class, color space, PCS, date/time, platform, rendering intent, creator, MD5 ID |
| Profile classes | Input (scanner/camera), Display (monitor), Output (printer), DeviceLink, ColorSpace, NamedColor, Abstract |
| Tag structure | Tag table follows header; each entry: 4-byte signature + 4-byte data offset + 4-byte data size; tag data follows table |
| Color transforms | Curves, matrices, or cLUT (multi-dimensional color lookup tables); cLUT profiles can reach several MB |
| Integrity check | Optional 16-byte MD5 hash of the full profile stored at header offset 84 (profileID field); zeros if unused |
| Standard versions | v2 (legacy), v4 (ICC.1:2001-2022, current production), v5/iccMAX (ICC.2:2019, experimental spectral extension) |
| Typical size | 1 KB - 2 MB; typical display profiles 10-500 KB; large cLUT-based output profiles can exceed 1 MB |
| Embedding | JPEG (APP2 marker), TIFF (tag 34675), PNG (iCCP chunk), PDF (ICCBased color space) |
| Windows alias | .icm extension carries the identical binary format; .icc is the cross-platform convention |
| OS support | macOS ColorSync, Windows Color System (WCS/ICM), Linux colord / Argyll CMS / GNOME Color Manager |
| Rendering intents | Four defined intents: Perceptual, Relative Colorimetric, Saturation, Absolute Colorimetric - stored in header and tag data |
| Released | 1994 (ICC Profile Format Specification v1) |
| Latest version | ICC.1:2022 (version 4.4); iccMAX (ICC.2:2019, experimental v5) |
| Open standard | Yes · royalty-free |
| Specification | www.color.org |