ICC printer profiling · free & open source

Make your printer print the colour you actually chose.

ChromIQ builds a custom ICC profile for your exact printer, ink and paper — the colour fingerprint that makes prints match your screen. It drives ArgyllCMS through a calm five-step wizard, so you never touch the command line.

Free under the GPLv3. Needs ArgyllCMS 3.5.0 — ChromIQ finds it for you on first launch.

Trying what is next? The newest 4.3 beta judges the i1Pro 2, 3 and 3 Plus by their own reading speed, timed from the beep, saves reports and inspections where they belong, and runs again on older Macs. It carries the whole of 4.3.2 as well. Design and open questions on issue #182 and issue #202.

New in 4.3.0: the Measurement Report, with six report types, named limit sets including the published values of ISO 12647-7 and ISO 12647-8, trend graphs and PDF reports, plus 31 more chart presets and a Ukrainian translation. Everything marked NEW IN 4.3 on this page is in the download above. Design and open questions on issue #182.


ChromIQ Create Chart tab with a full A4 test chart in the preview ChromIQ Create Chart tab with a full A4 test chart in the preview

The five steps

From a blank sheet to an accurate profile — in order.

Each step has a Guided path with sensible defaults and a Manual path that exposes every ArgyllCMS control, side by side. A clickable ⓘ on every screen explains what to do.

01

Create Chart

The chart sets the ceiling on how good the profile can be — so ChromIQ hands you the whole design, not a fixed target. Start from one of 189 ready-made chart presets covering every common instrument, paper size and patch count, or let ChromIQ’s own layout engine lay the sheet out: patch size by minimum width or by columns and rows, instrument-safe margins it will not let you break, spacers, position helper markers, row numbers beside the strips so one patch among hundreds can be found the way a square is found on a map, and a live preview of the exact sheet.

The colours are yours too. The built-in chart patch-set editor is a full design surface, not an add-on: stack skin tones, near-neutral greys, saturated edges and gamut faces, highlights and shadows, pastels — or the colours of one of your own photographs — with live counts and automatic de-duplication, in RGB, CMYK or CMYK plus extra inks. Reorder strips, recolour patches and spacers, merge two charts into one, and see the whole set as a rotatable 3D cube. Colour sets like these are simply not something targen can express, and here they cost nothing.

Guided does the whole thing in one click from an empirical patch-capacity database; Manual exposes every targen / printtarg flag with a live preview of the command that will run.

NEW IN 4.3
31 more presets (4.2 has 154), and a shorter list to choose from. The gear button beside the presets folder opens Settings for built-in presets, every built-in preset with a tick box: the ticked ones are listed directly, and the rest wait under an arrow at the end of their instrument’s group, so nothing is ever removed. ChromIQ starts you on a few per instrument and paper size, and only the changes you make are kept, so a later release can still improve the starting list for you. On a verification run, “Which presets can be used for verification?” lists every preset against the metrics the report you plan asks of a chart, and says which of them each chart can answer, and why not.

The Manual create panel, with a live preview of the sheet
The chart patch-set editor, every patch of the set shown as a swatch that can be recoloured and reordered
The sheet, and the patch-set editor that decides which colours are on it
02

Print Chart

Print it the way profiling needs — with colour management off. A PostScript pipeline on macOS, an automatic TIFF fallback for AirPrint / driverless printers, or the native OS dialog with the driver's colour controls locked. Preflight checks paper size and orientation first.

ChromIQ printing the chart itself, with the Canon PRO-300 selected and the print options shown
ChromIQ’s own printing pipeline, colour management off
03

Measure

Read the printed patches with your spectrophotometer, driven from the screen. The chart is drawn beside you with every strip on it: click the strip you want and ChromIQ goes there. Each patch fills in split down the middle — the colour the chart asked for on one side, the colour your printer actually made on the other — and a patch that looks misread is outlined. Read any strip again whenever you like; the strips you leave alone keep the readings they already have. ChromIQ knows your instrument’s reading pace, checks every strip’s speed live and tells you when a swipe was too fast to be reliable — with optional sounds for every event, so your eyes can stay on the chart.

Prefer your hands on the instrument? The same session is fully keyboard-driven as well — Enter confirms, F/B step forward and back — and repeat reads can be averaged to cut instrument noise. Besides strip reading, ChromIQ also reads single patches off any material with its spot-reading tool.

NEW IN 4.2.0
An instrument ArgyllCMS has never supported. The ChnSpec CR30 is an inexpensive hand-held spectrophotometer with no ArgyllCMS driver of any kind, so ChromIQ drives it itself, over USB or Bluetooth: it finds the instrument, calibrates it with you step by step, and reads the chart patch by patch. Press Space or Enter to take a reading, so the instrument is never nudged by its own button. Because it is aimed by hand, the preview draws the instrument’s 33 mm body to scale on the patch it is asking for, so you can line it up on the neighbours before you set it down. And if anything magnetic touches its opening (a laptop lid under your paper will do it) a CR30 stops measuring your patch and hands back its own white-tile value instead, which looks like a perfectly ordinary colour. ChromIQ learns what your instrument reports in that state and refuses the reading rather than writing it quietly into your profile. Twenty-six ready-made CR30 charts come with it, on A4 and on US Letter (twenty in 4.2; six more in 4.3).

Released in 4.2.0 and used on real hardware on macOS (USB and Bluetooth) and on Windows (USB, and Bluetooth on Windows 11); Linux should work and nobody has tried it. The protocol was reverse engineered, and the notes, the captures and the experiments that turned out wrong are public in the research notes. On Windows, the drivers for ArgyllCMS’s instruments and for the CR30 are installed from one place inside the app, with your consent asked first.

Measuring a chart, each patch split between the colour expected and the colour measured
Guided strip-by-strip measurement, expected against measured
04

Build Profile

Turn the measurements into an ICC profile with colprof. RGB, CMYK and multi-channel DeviceN targets; CIECAM02 viewing-condition presets; media attributes embedded in the profile header. The scanner and camera window asks what the profile is for, everyday scanning, standing in for a measuring instrument, or profiling a printer through the scanner, and sets the profile type, the quality and the white point to suit that job and the size of your target. Nothing is locked.

Building the ICC profile
Building the ICC profile
05

Check & Refine

See the profile's accuracy in ΔE, inspect the 3D gamut volume it can reproduce, and run a second-pass pre-conditioning refinement that samples harder where your printer is least accurate. A measurement made elsewhere can be checked where it lies, without making a project.

3D gamut volume, compared against a reference space
3D gamut volume, compared against a reference space

And then, month after month

A profile is not finished. Your printer keeps moving.

Ink settles in a head that has stood idle. A new cartridge is never quite the last one. A firmware update or a service visit shifts the tone curve. None of that announces itself — the prints just quietly stop matching. ChromIQ turns the check into a short routine: print a small verification chart through the finished profile, read it, and see in ΔE exactly how far your printer has moved since the day that profile was built.

  • A short chart, not the full target — and it can be built from your own profile’s gamut, so it samples where that profile actually lives.
  • Every check is filed under its own date, with its own report. Earlier checks are never overwritten, so you can watch how a profile changes over months.
  • A detailed report: average and worst-case ΔE, the patches that moved most, and a 3D difference map showing which way each colour went.
  • The chart a check was measured with is kept beside the result, so a number can always be traced back to the sheet it came from.
  • NEW IN 4.3 Judge each check against ChromIQ’s own limits or the published values of ISO 12647-7 and ISO 12647-8, in a Measurement Report, and follow every metric on a trend graph from one check to the next. ChromIQ measures against those values; it does not certify.
A ChromIQ verification report: average and worst-case Delta E for a profile checked against its reference
A verification report — how far the printer has moved

New in 4.3 · The Measurement Report

A report you can hand over, judged against limits you can name.

Any measurement becomes a Measurement Report, from the Measure tab or from Tools. Choose what kind of document you need and which set of limits it is judged against. ChromIQ measures every metric your chart can answer, marks each one PASS or FAIL against its limit (INFO where a set gives it no limit), and marks N-A, with the reason, the ones this chart cannot answer, instead of quietly leaving them out.

  • Six report types: Colour summary (one page), Full colour check, Grey and tone check, Printing record (not graded), Validation print check (ISO 12647-8) and Contract proof check (ISO 12647-7). The run type decides what is offered: the sheet a profile was built from gets a printing record; a verification gets the judged types, the two ISO types among them; a calibration gets the judged types without the two ISO types, and can still be judged against an ISO limit set.
  • Grey balance, tone ramps and evenness. The grey ramp is judged for colour cast (the mid-tone ramps with it under ISO 12647-8 and the two Custom ISO sets), and the sheet is split into nine areas and compared, so a band or an uneven dry-down shows up as a number. The measurement's own noise is taken out first, so the number is the unevenness itself.
  • Trend graphs. Every judged metric over time, across your dated verifications, each with its own limit line, so a change is visible before it fails.
  • Save report as PDF: the whole report, or the one-page summary to hand over with a job. The save window opens in that report’s own reports/ folder.

Limit sets · the Report limits window

ChromIQ’s own
ChromIQ default
2.0 on the averages, 3.0 on the maxima; the right choice for checking a profile you built
ChromIQ tight
half of ChromIQ default's ΔE00 limits, for critical work
Quick check
twice ChromIQ default's ΔE00 limits: only a printer that has clearly changed fails
Published values, read-only
ISO 12647-7:2016 values
contract proofs
ISO 12647-8:2021 values
validation prints
Custom, yours to change
Custom ISO 12647-7
an alternative to ISO 12647-7, starting from limits researched from industry practice and ChromIQ’s own numbers, not the standard’s
Custom ISO 12647-8
the same, as an alternative to ISO 12647-8

One report, one limit set, applied to every measurement in it. The ChromIQ and Custom sets can be edited; the ISO sets carry the standards’ published tolerance values and cannot be.

ChromIQ measures against published values; it does not certify

The ISO 12647 values are applied to the chart you printed, not to that standard’s own control strip and chart, so a report can never say that a print conforms to a standard. What ChromIQ does is measure as many of the standard’s values as your chart allows, say which it checked and which it did not, and let you follow them over time.

Requirements ChromIQ cannot measure at all stay in the limits table, marked ✕, so you can see what the standard asks.

Where your work lives

One project per printer. As many profiles inside it as you like.

Every printer gets a project folder, and inside it an unlimited number of profile runs — one per paper, per ink set, per second attempt. A run owns its chart, its measurement, its settings, its description and its own verification history, so opening a run from six months ago shows you what that run was actually made with, not the last thing you happened to type.

  • Nothing you made is ever deleted. A measurement you replace, a chart you regenerate, a calibration you redo — each moves into an old/ folder with the date on it.
  • You are warned before it can cost you anything. Change a chart that already has a measurement, a profile or verifications behind it and ChromIQ says exactly what will move, and where, before you commit.
  • The chart a measurement was made with is kept. Alter the run’s chart later and the sheet that measurement belongs to is still there.
  • An interrupted measurement is not a lost one. Readings taken before a session stopped are saved, found again when you come back, and can be carried on from.
  • Plain, self-describing folders. Real names, no database — and a “Where are my files” guide written alongside them.
~/ChromIQ/Canon-PRO-300/
├─ project.json                  the manifest
├─ cal/                          shared calibration
├─ runs/
│  ├─ run1/                     Hahnemühle Photo Rag
│  │  ├─ Canon-PRO-300.ti2 · Canon-PRO-300_01.tif
│  │  ├─ Canon-PRO-300.ti3       the measurement
│  │  ├─ Canon-PRO-300.icc       the profile
│  │  ├─ chart/                  the sheet measured
│  │  ├─ verifications/
│  │  │  ├─ 2026-03-04_101122/   + report
│  │  │  └─ 2026-06-19_144005/   + report
│  │  ├─ reports/ · exports/ · cache/
│  │  └─ old/                    what you replaced, dated
│  └─ run2/                     Canon Pro Platinum
└─ Where are my files.txt

The layout ChromIQ writes. Older projects are brought up to it in place when you open them — nothing is deleted, and it tells you first.

Not only printers

Profile your scanner — or your camera — too.

Build your own scanning target, as large and as densely sampled as you like — not the fixed patch count a bought chart gives you. Print any ChromIQ chart, measure it once with your spectrophotometer, and ChromIQ writes the recognition and reference files the reader needs. Or load a target you already own — a Wolf Faust IT8, an X-Rite ColorChecker, a LaserSoft chart. Either way ChromIQ lays a reading grid over your scan (or photo) so it sits exactly on the patches, then builds a scanner or camera ICC profile.

  • Your own target, at any size: a printed chart you have measured becomes a scanner target, complete with its .cht recognition file and its .cie reference data.
  • Reads bought targets straight from ArgyllCMS — with corrected recognition files bundled for the ones Argyll got wrong.
  • Converts the target’s reference data for you (X-Rite .cxf, spectral .txt) — no command line.
  • Says what the profile is for and sets itself up for that job: everyday scanning, standing in for a measuring instrument, or a printer profile through the scanner. Profile type, quality and white point follow the size of your target; nothing is locked.
  • Auto align puts the grid on the patches for you, turning a sideways scan the right way up, and says so when it is not confident rather than guessing.
  • Average several scans to cut noise.
A reading grid placed on an IT8 target's colour patches and greyscale strip
The reading grid landing on every patch of an IT8 target

More than the wizard

Serious colour science, with the sharp edges filed off.

Guided & Manual

Sensible one-click defaults, or every ArgyllCMS flag exposed with a live preview — same window, your choice.

Prints without colour management

A raw PostScript/TIFF path that bypasses ColorSync and driver colour correction, so the chart prints exactly as sent.

3D gamut viewer

Rotate the colour volume your profile reproduces and compare it against a reference space like Adobe RGB.

Scanner & camera profiling

Reuse a measured chart — or a bought IT8 / ColorChecker target — to build an input profile for a scanner or a camera.

Calibration, then profile

Optional linearisation pass (printcal / applycal) before profiling, for printers without built-in calibration.

i1Profiler interoperability

Import and export i1Profiler charts and measurements, so ChromIQ fits into an existing X-Rite workflow.

Device-links & soft-proofing

Build device-link profiles and soft-proof an image with an out-of-gamut mask before you commit ink to paper.

Plain-language help everywhere

Every screen has a clickable ⓘ that explains the step, and what you need, in words a beginner can follow.

Every run keeps its own work

A profile run holds its own chart, measurement, settings and description, so going back to an older run shows what that run was actually made with. Nothing you made is deleted — only archived, with the date.

Verification runs, kept as history

Measure a chart printed through a finished profile and the result is filed by date with its own report. Earlier checks are never overwritten, so you can watch how a profile changes over months.

Measurement Report NEW IN 4.3

Six report types, limit sets from ChromIQ’s own to the published ISO 12647-7 and -8 values, trend graphs and PDF reports. Measured against those values, never certified.

A preset list you choose NEW IN 4.3

The gear button opens Settings for built-in presets, which decides which built-in presets are listed directly; the rest wait under an arrow, never removed. A second window says which presets can answer a verification report.

Sounds during measurement

A strip accepted, a patch misread, a session finished — each can play a sound, so you can keep your eyes on the chart instead of the screen.

Fourteen languages

English plus thirteen complete translations: German, Spanish, French, Italian, Dutch, Portuguese, Swedish, Norwegian, Polish, Russian, Ukrainian, Japanese and Chinese. The Ukrainian translation, new in 4.3, was contributed by LackiUA. Every button, message, tooltip and help text, not just the menus.

Three appearances

Light, Dark, and Neutral: a designed greyscale for anyone who would rather the app did not use colour to say things. Choose in Preferences.

Instrument drivers on Windows

One place in Preferences installs the driver for ArgyllCMS's instruments or for the CR30's USB bridge, says what it will change before you click, asks for consent, and says what it did.

The Tools menu

A workshop of colour utilities.

Beyond the five-step wizard, a menu of focused tools — grouped by task, each a small guided dialog with its own plain-language help.

Measurements

  • Read single patches
  • Average measurements
  • Merge measurements
  • Inspect a measurement
  • Measurement report (accuracy & trends)

Charts & patch sets

  • Edit / create chart patch set
  • Show patch distribution (3D)

Scanner & camera

  • Create scanner or camera target (.cht + .cie)
  • Build profile with scanner or camera (from a scan or photo)

i1Profiler interchange

  • Convert TI1 → i1Profiler
  • Convert i1Profiler → TI3
  • Convert i1Profiler → TI1

Profiles

  • Inspect a profile
  • Verify a profile (independent check)
  • Verify against reference
  • Create device-link profile
  • Apply a device-link to an image
  • Soft-proof / check an image

Instruments

  • CR30 Bluetooth report (for when it will not connect)

Language

  • Translate / edit language

Companion app

ChromIQ Patches — the chart editor, on its own.

The test-chart / patch-set editor is also a small standalone app. Build and combine patch sets, generate colour distributions, and inspect them as a 3D point cloud — then hand the result to ChromIQ or to i1Profiler. Free and open source, like everything here.

  • Design and merge patch sets, with live counts.
  • RGB, CMYK — and CMYK plus extra ink channels (OGV and friends).
  • See the whole set as a rotatable 3D RGB cube.
  • Export straight to i1Profiler or ArgyllCMS.

Get ChromIQ Patches on GitHub

The ChromIQ Patches editor showing a 3D point-cloud of the patch set
ChromIQ Patches — 3D distribution of a patch set

Companion app

ChromIQ Gamut Viewer — see what your paper actually reached.

A profile is a fitted model of your printer: it smooths, it interpolates, and near the edges it can promise a little more than the paper really gave. This asks the measurements instead — every corner of the shape is a patch that was printed and read. Open the .ti3 from any chart you have measured and look at it in 3D. Free and open source, like everything here.

  • The gamut your chart measured, keeping the dents your printer really has.
  • Against sRGB, Adobe RGB, Display P3 — or any ICC profile, version 2 or 4.
  • How much fits inside how much, both ways round, because they are different questions.
  • Two papers side by side, a cross-section at any lightness, and the change between two readings.
  • Open a photograph and see which of its colours the paper can print.

Get ChromIQ Gamut Viewer on GitHub

The ChromIQ Gamut Viewer showing a measured paper gamut inside the sRGB outline, with the colours sRGB cannot reach picked out in red
ChromIQ Gamut Viewer — in red, the colours sRGB cannot reach

Under the hood

What it runs on.

Instruments
i1Pro · i1Pro 2 · i1Pro 3 · i1Pro 3 Plus · ColorMunki (i1Studio / ColorChecker Studio) · SpectroScan · ChnSpec CR30 (driven by ChromIQ itself, USB and Bluetooth). Also i1iSis charts via i1Profiler (ChromIQ makes the chart and imports the measurement; i1Profiler does the reading)
Colour engine
ArgyllCMS 3.5.0 — not bundled; ChromIQ finds it for you on first launch
ChromIQ's own engines
189 ready-made chart presets for every common instrument, paper and patch count (154 in 4.2) · a chart layout engine that sizes patches by minimum width or by columns and rows, with instrument-safe margins and a live preview of the exact sheet · a strip-reading engine with sounds, live pace feedback and per-strip re-reads · more than a dozen combinable patch-set generators · a verification target built from your profile's own gamut
Platforms
macOS · Windows · Linux (x86_64 & aarch64, beta) · Windows installs the instrument drivers from inside the app
Report limits
New in 4.3: ChromIQ default, tight and Quick check · the published values of ISO 12647-7:2016 and ISO 12647-8:2021, read-only · Custom ISO 12647-7 and -8 from industry practice. Measured against, never certified
Languages
14, including German, French, Spanish, Italian, Ukrainian (new in 4.3), Japanese, Chinese. 4.2 has 13
Licence
GPLv3 — free and open source

Free · GPLv3

Give your prints the colour they deserve.

Download ChromIQ, point it at ArgyllCMS, and build your first profile in an afternoon — no command line, no subscription.