Profile file
📁 Drag & drop an ICC/ICM file here
ICC v2/v4 header + tag table + TRC + primaries
RGB display profiles get full analysis (matrices, gamut, TRC curves)
Profile history
Loaded profiles: 0
Drop multiple profiles sequentially. Use the Research tab to compare all loaded profiles on one chromaticity diagram.
Quick actions
Keyboard shortcuts
J copy JSON  |  H copy header  |  R reset  |  C compare profiles
📂
No ICC profile loaded
Drag & drop a .icc or .icm file on the left panel, or click Browse.
Export and share
JSON includes full header, names, primaries, gamut, matrices, and tag list. CSV exports the tag table for spreadsheet analysis.
Copy to clipboard
Usage notes

JSON output is designed to plug directly into your colour pipeline or research tools.

CSV output exports the raw tag table — import into Excel/Sheets for custom analysis.

Multi-profile comparison is available in the Research tab — drop multiple profiles sequentially.

TRC data — for table-based TRC (e.g. 1024 entries), only gamma approximation is shown in the UI; full data is in JSON.

ICC & Color Management Standards Overview
ICC Specification (ICC.1:2022)

ICC.1:2022 defines the architecture, profile format, and data structures for ICC color management. The specification mandates the Profile Connection Space (PCS) under D50 illuminant using CIEXYZ or CIELAB encoding.

Profile classes: Input (scnr), Display (mntr), Output (prtr), DeviceLink (link), ColorSpace (spac), Abstract (abst), NamedColor (nmcl). Display profiles (mntr) are most common for monitors.

Tag table: Each profile contains a tag table with signature, offset, and size entries pointing to typed data elements (XYZType, curveType, parametricCurveType, textType, multiLocalizedUnicodeType, etc.).

The Bradford CAT is mandated for chromatic adaptation between device white point and D50 PCS. No alternative transforms are permitted.

ICC v2 vs v4 Differences

Version 2 (ICC.1:2001-04): Uses 'desc' tag type for profile description. Simpler header. Widely supported by legacy software.

Version 4 (ICC.1:2004+): Introduces 'mluc' (multiLocalizedUnicodeType) for localised descriptions. Adds profile ID (MD5 checksum) in header bytes 84-99. Requires D50 PCS. Mandates Bradford CAT. Tighter validation rules.

Key parsing differences: v2 'desc' → ASCII string at offset+12. v4 'mluc' → UTF-16BE at computed offset. Both use same XYZType, curveType, parametricCurveType structures. Header layout identical through byte 127; tag table starts at 128.

Rendering Intents
  • Perceptual (0): Compresses entire source gamut into destination gamut. Preserves relative relationships. Used for photographic images.
  • Relative colorimetric (1): Clips out-of-gamut colours to nearest in-gamut point. Adapts white point. Used for proofing and logos.
  • Saturation (2): Maximises saturation. Used for business graphics (charts, diagrams).
  • Absolute colorimetric (3): Like relative colorimetric but preserves absolute white point. Used for spot colour matching.
Tone Response Curves (TRC)

curveType ('curv'): If count=0 → identity (γ=1.0). If count=1 → simple gamma (u8Fixed8Number). If count>1 → lookup table of uint16 values normalised to [0,1].

parametricCurveType ('para'): Defines gamma via parametric functions (types 0-4). Type 0: Y = X^γ. Type 3 (sRGB-like): Y = (aX+b)^γ + c for X≥d, else Y = eX+f.

sRGB reference: γ ≈ 2.2 (exact: piecewise function with linear segment below 0.04045). Adobe RGB: γ = 2.199. DCI-P3: γ = 2.6.

CIE 1931 Standard Observer & Chromaticity

The CIE 1931 2° standard observer defines colour matching functions x̄(λ), ȳ(λ), z̄(λ) from 360-830 nm. These are the basis for all tristimulus colorimetry (XYZ).

Chromaticity coordinates: x = X/(X+Y+Z), y = Y/(X+Y+Z). The spectral locus is the horseshoe-shaped boundary of all monochromatic colours. The line of purples connects the 380 nm and 780 nm endpoints.

Gamut triangles plotted on the chromaticity diagram show the range of colours reproducible by a three-primary system. Larger triangle = wider gamut.

Standard Illuminants & PCS
  • D50 (5003 K): ICC Profile Connection Space reference. Printing industry standard.
  • D65 (6504 K): sRGB, Rec. 709, Rec. 2020 reference white. Standard daylight.
  • D55 (5503 K): Mid-daylight. Some photographic standards.
  • D75 (7504 K): North sky daylight.
  • A (2856 K): Tungsten/incandescent. Planckian radiator.

ICC profiles store the device white point in the header (bytes 68-79) as s15Fixed16Number XYZ values. The parser matches this against known illuminants by xy distance.

Known Gamut Standards
  • sRGB (IEC 61966-2-1): R(0.64,0.33) G(0.30,0.60) B(0.15,0.06). D65 white. ~35% of visible gamut.
  • Display P3 (DCI-P3 adapted): R(0.68,0.32) G(0.265,0.69) B(0.15,0.06). D65 white. ~26% larger than sRGB.
  • Adobe RGB (1998): R(0.64,0.33) G(0.21,0.71) B(0.15,0.06). D65 white. ~35% larger than sRGB.
  • ProPhoto RGB (ROMM): R(0.7347,0.2653) G(0.1596,0.8404) B(0.0366,0.0001). D50 white. ~87% of visible gamut.
  • Rec. 2020 (ITU-R BT.2020): R(0.708,0.292) G(0.170,0.797) B(0.131,0.046). D65 white. ~76% of visible gamut.
Mathematical Models and Formulas

ICC Profile Binary Layout:

Header (128 bytes):
Bytes 0-3: Profile size (uint32 big-endian)
Bytes 4-7: CMM type signature (4-char ASCII)
Bytes 8-11: Version (major.minor.bugfix packed)
Bytes 12-15: Device class signature (scnr/mntr/prtr/link/spac/abst/nmcl)
Bytes 16-19: Color space signature (RGB/CMYK/GRAY/Lab/XYZ...)
Bytes 20-23: PCS signature (XYZ/Lab)
Bytes 24-35: Date/time (6 × uint16: Y/M/D/H/M/S)
Bytes 36-39: Magic number ('acsp' = 0x61637370)
Bytes 40-43: Platform signature (APPL/MSFT/SGI/SUNW)
Bytes 44-47: Profile flags (uint32)
Bytes 48-51: Device manufacturer (4-char)
Bytes 52-55: Device model (4-char)
Bytes 64-67: Rendering intent (uint32: 0/1/2/3)
Bytes 68-79: PCS illuminant XYZ (3 × s15Fixed16Number)
Bytes 80-83: Profile creator (4-char)

Tag table (starts at byte 128):
Byte 128-131: Tag count (uint32)
Each tag entry: 12 bytes (4-char sig + uint32 offset + uint32 size)
Research, Standards and Citations

ICC Specification

[1] ICC (2022). ICC.1:2022 — Image technology colour management: Architecture, profile format, and data structure. International Color Consortium.

[2] ICC (2010). ICC.1:2010 — Profile version 4.3 (identical to ISO 15076-1:2010).

[3] ICC (2001). ICC.1:2001-04 — Profile version 2.4. Legacy specification for v2 profiles.

Colorimetry and CIE Standards

[4] CIE (2004). Colorimetry, 3rd Ed. CIE 15:2004.

[5] CIE (1931). Commission Internationale de l'Éclairage Proceedings, 1931 Cambridge.

[6] Sharma, G., Wu, W., Dalal, E.N. (2005). The CIEDE2000 color-difference formula. Color Res. App., 30(1), 21-30. DOI: 10.1002/col.20070

Color Spaces and Gamut

[7] IEC 61966-2-1:1999. Colour management — Default RGB colour space — sRGB.

[8] Adobe Systems (2005). Adobe RGB (1998) Color Image Encoding. Version 2005-05.

[9] Apple Inc. Display P3 — DCI-P3 primaries with D65 white point adaptation.

[10] ITU-R BT.2020 (2015). Parameter values for ultra-high definition television systems.

[11] ROMM RGB (ProPhoto RGB). Eastman Kodak, ISO 22028-2:2013.

Matrix and Chromatic Adaptation

[12] Lam, K.M. (1985). Metamerism and colour constancy. PhD thesis, University of Bradford.

[13] Fairchild, M.D. (2013). Color Appearance Models, 3rd Ed. Wiley-Blackwell. ISBN: 978-1-119-96703-3

[14] Lindbloom, B. (2017). Chromatic Adaptation. brucelindbloom.com.

ICC Profile Analysis Research

[15] Moroney, N., Fairchild, M.D., Hunt, R.W.G., Li, C., Luo, M.R., Newman, T. (2002). The CIECAM02 Color Appearance Model. IS&T/SID 10th Color Imaging Conference.

[16] Bala, R. (2003). Device characterization. Digital Color Imaging Handbook, CRC Press. Ch. 5.

[17] Green, P. (2010). Color Management: Understanding and Using ICC Profiles. Wiley.

About this tool

This tool parses ICC v2/v4 binary profiles entirely on-device with zero network calls. It decodes headers, tag tables, TRC curves, primaries, white points, gamut classification, RGB↔XYZ matrix computation, CIE 1931 chromaticity plots, and multi-profile comparison. Not a substitute for official ICC profile validators or commercial colour management systems.

Research Backend
Frontend
Multi-Profile Comparison

Drop multiple ICC profiles sequentially (on the Lab tab), then click Compare to overlay all profile gamut triangles on a single CIE 1931 chromaticity diagram. Shows version, gamut, TRC, white point side-by-side.

# Name Version Space Gamut TRC White Point Tags
Load 2+ profiles, then click Compare
Each profile is drawn in a different colour. Gamut triangles overlaid on the spectral locus. White points marked.
Batch Colour Analysis

Enter hex colours (one per line or comma-separated). Computes XYZ, CIELAB (D50), and relative luminance for each colour using the current profile's white point as context.

Click Run Batch to analyse colours.
Profile Forensics

Research note: ICC profiles can be fingerprinted by their unique combination of primaries, TRC type, tag ordering, and metadata strings. Two profiles from the same software/hardware pipeline typically share identical tag signatures and CMM types.

Common CMM signatures:
• APPL (Apple ColorSync), ADBE (Adobe CMM), MSFT (Microsoft ICM)
• Lcms (Little CMS), argl (ArgyllCMS), HDM (Heidelberg)

Common platform signatures:
• APPL (macOS), MSFT (Windows), *nix (Linux/X11)

TRC fingerprints:
• γ=2.200 → sRGB-like (most display profiles)
• γ=2.199 → Adobe RGB (1998)
• γ=1.800 → Apple legacy (pre-Snow Leopard)
• γ=2.600 → DCI-P3 cinema
• Table(1024+) → hardware-calibrated (i1Display, Spyder, etc.)
Research backend provides: ICC v2/v4 header parsing, tag table decoding, TRC curve visualisation, CIE 1931 chromaticity with gamut overlay, gamut area comparison, white point deviation analysis, RGB↔XYZ matrix diagnostics (determinant, condition number, Frobenius norm), multi-profile comparison, batch colour analysis — all on-device with zero network dependency.