Insighter: looking inside ICC profiles
I have been writing color management code for a long time. One frustration that never went away: ICC profiles are opaque by default. You know something is off — a highlight clips, a neutral drifts — but actually reading the profile requires either a hex editor or enough patience to parse the spec by hand.
So at some point I just built a viewer. That became Insighter.
What is actually inside a profile
An ICC profile is a binary file structured around a tag table. Each tag has a four-character signature, an offset, and a size. The contents vary wildly — a curv tag holds a tone curve, a XYZ tag holds a three-component tristimulus value, an mft2 or mAB tag holds a full multi-dimensional processing pipeline.