Skip to the content.

Argyll_Printer_Profiler Scripts — User Guide

Version: 1.3.6
Platform: macOS, Linux (Bash script); macOS, Linux, Windows (Python script)
Based on: Simple script by Jintak Han (https://github.com/jintakhan/AutomatedArgyllPrinter)
Author: Knut Larsson

Argyll_Printer_Profiler is available in two versions: a Bash script (Argyll_Printer_Profiler.command) and a Python script (Argyll_Printer_Profiler.py). Both automate a complete ArgyllCMS printer profiling workflow on supported platforms, from target generation to ICC installation.


📑 Table of Contents


Overview

This script provides a guided, menu-driven interface for creating printer ICC profiles using ArgyllCMS.

It is designed for:

Make sure to read chapter on Installation below and follow steps in section Getting Started.


Scripts and Platforms

The Argyll_Printer_Profiler project provides two script versions to accommodate different user preferences and platform requirements.

Bash Script (Argyll_Printer_Profiler.command)

Python Script (Argyll_Printer_Profiler.py)

Both scripts use the same setup file (Argyll_Printer_Profiler_setup.ini) and provide identical functionality and user experience.


Features

General

Details

Advanced Delta E Analysis

Robust Error Handling

User Interface


Installation

Getting Started

  1. Prepare for the script to run:
    • Place script folder in a desired location. See section Script Placement.
    • Check that dependencies are installed.
    • Make sure environmental PATH variable for installed ArgyllCMS is present. This is especially important for Windows users. Use the script add_argyll_path_windows. which is supplied with the release of Argyll\_Printer\_Profiler. This script comes in two versions, use ase desired (guidance in header of file):
      1. Windows PowerShell: add_argyll_path_windows.ps1 and
      2. Python: add_argyll_path_windows.py
  2. Modify the setup to fit your operating system. See section Key Parameters for understanding the most important configurable parameters. The following should be assessed/modified:

    a. Easily modified via main menu (option 6):

    • Paths, which are different for MacOS/Linux/Windows and must be changed if not valid (visible above main menu when running script):
      • ICC/ICM profile to use PRINTER_ICC_PATH for creation of printer profile (used by colprof). This affects the color gamut for perceptual and saturation intents created in the profile by ArgyllCMS. Absolute and Relative colorimetric rendering intents are not affected.
      • ICC/ICM profile to use PRECONDITIONING_PROFILE_PATH if target charts are generated to fit a particular profile (used by targen).
      • Location path PRINTER_PROFILES_PATH to folder where printer profiles are placed for operating system to use.
    • Ink limit. (keep empty to use ArgyllCMS specified default)
    • Paper size.
    • STRIP_PATCH_CONSISTENSY_TOLERANCE (tolerance for how much color patch can vary before warning by chartread)
    • EXAMPLE_FILE_NAMING (naming convention visible as guidance when specifying file name).

    b. Modified in .ini file (defaults can be used as is):

    • Common arguments to use by default (COMMON_ARGUMENTS_*).
      • Is COMMON_ARGUMENTS_TARGEN satisfactory?
      • Is COMMON_ARGUMENTS_PRINTTARG satisfactory?
      • Is COMMON_ARGUMENTS_CHARTREAD satisfactory?
      • Is COMMON_ARGUMENTS_COLPROF satisfactory?
    • Change menu arguments as desired (INST_CM_MENU_* and INST_OTHER_MENU_*).
  3. Run the script

    For the Bash script (Argyll_Printer_Profiler.command), see the Execution Permissions for MacOS or Linux sections below for setting permissions and running.

    For the Python script (Argyll_Printer_Profiler.py), open a terminal or command prompt, navigate to the script folder, and run:

    python3 Argyll_Printer_Profiler.py
    

    On Windows, use python instead of python3.

Bash Script Dependencies

macOS

The recommended way is Homebrew:

brew install argyll-cms

Verify ArgyllCMS installation:

targen -?

Linux

The recommended way is apt:

sudo apt install argyll zenity xdotool
or
sudo apt install argyll zenity wmctrl

Note! Many Linux distributions have preinstalled Linux xdotool or wmctrl. To verify if any of them is installed, open a terminal and run:

command -v xdotool >/dev/null 2>&1 && echo true || echo false

Outputs true if xdotool is installed, otherwise false.

command -v wmctrl >/dev/null 2>&1 && echo true || echo false

Outputs true if wmctrl is installed, otherwise false.

Verify ArgyllCMS installation:

targen -?

Python Script Dependencies

macOS

Install Python 3 with tkinter support:

brew install python3 python-tk

Install ArgyllCMS:

brew install argyll-cms

Verify installations:

python3 --version
python3 -c "import tkinter; print('tkinter available')"
targen -?

Linux

Install Python 3 with tkinter support (if not already installed):

sudo apt install python3 python3-tk

Install ArgyllCMS and window management tools:

sudo apt install argyll xdotool
or
sudo apt install argyll wmctrl

Verify installations:

python3 --version
python3 -c "import tkinter; print('tkinter available')"
targen -?

Windows

Download and install Python 3.x from https://www.python.org/downloads/ (ensure tkinter is selected during installation).

Download and install ArgyllCMS from https://www.argyllcms.com/.

Verify installations:

python --version
python -c "import tkinter; print('tkinter available')"
targen -?

Script Placement

You may place any of the scripts in any folder:

All generated files are stored relative to the script’s location.

Setup File: Argyll_Printer_Profiler_setup.ini. The setup file must be located in the same folder as the script:

Argyll_Printer_Profiler.command
or
Argyll_Printer_Profiler.py

Argyll_Printer_Profiler_setup.ini

Execution Permissions for MacOS (Important)

Note! Ctrl + Right Click on the script, then Open, may work in many cases instead of running chmod command in terminal.

On modern macOS versions, a script must have the execute bit set.

  1. Open Terminal
  2. Navigate to the script folder (use: “cd [folder_name]” and “ls” to navigate, “cd ..” to navigate one level up)
  3. Run command:
chmod +x Argyll_Printer_Profiler.command

Verify (not strictly necessary):

ls -l Argyll_Printer_Profiler.command

Expected output:

-rwxr-xr-x@ Argyll_Printer_Profiler.command

You can now run the script by:

Execution Permissions for Linux (Important)

As for macOS, Linux scripts must have the execute bit set. However, the “.command” file extension is recommended to change to “.sh”. Rename file to .sh, then:

  1. Open Terminal
  2. Navigate to the script folder (use: “cd [folder_name]” and “ls” to navigate, “cd ..” to navigate one level up)
  3. Run command:
chmod +x Argyll_Printer_Profiler.sh

Verify (not strictly necessary):

ls -l Argyll_Printer_Profiler.sh

Expected output:

-rwxr-xr-x@ Argyll_Printer_Profiler.sh

Finally, the file manager preferences must be modified to run .sh files.

For Files / Nautilus (Ubuntu, Fedora)

  1. Open Files
  2. Menu → Preferences
  3. Executable Text Files
  4. Select:
    • ✅ Ask what to do
    • or Run them

Now double-click will prompt or run. You can now run the script by:

Key Parameters

For details on ArgyllCMS, the commands used by this script (targen, printtarg, chartread, colprof, profcheck), see: https://www.argyllcms.com/doc/ArgyllDoc.html

See Argyll_Printer_Profiler_setup.ini for a descriptions and list of all parameters.

Instrument-Specific Parameters

Target Generation Parameters

The script validates that all required parameters exist before running.


General Workflow

  1. Choose an action from the main menu
  2. Specify or select a profile name
  3. Generate or reuse color targets
  4. Print targets with no color management
  5. Measure patches with the instrument
  6. Create ICC profile
  7. Perform sanity check
  8. Install profile into local profiles folder

1. Create target chart and printer profile from scratch

2. Resume or re-read an existing target chart measurement and create profile

3. Read an existing target chart from scratch and create profile

4. Create printer profile from an existing measurement file

5. Perform sanity check on existing profile

6. Change setup parameters

7. Show tips on how to improve accuracy of a profile

8. Show ΔE2000 Color Accuracy — Quick Reference

9. Exit script


Target Generation Menu Options

The target generation menu options is available under main menu action 1.

The script provides 6 optimized preset targets, where patch counts and menu text are configurable in the .ini file.

ColorMunki Instrument (A4/Letter Paper)

Default menu for ColorMunki instrument (User may modify/add as desired):

A4 Paper Size:

Letter Paper Size:

The Colormunki menu above has separate options for A4 and Letter, shown according to the current setting of paper size, which can be chosen in main menu option 6.

Other Instruments (Same for All Paper Sizes)

Default menu for other instruments (User may modify/add as desired):

The menu for Other Instruments is the same regardless of paper size. This means that, if options differentiate between A4 and Letter size, then the page size must first be set in main menu option 6.

Files and Folder Structure

For each profile, a dedicated folder is created:

Folder Created_Profiles is created if missing.

Script_Location
└── Created_Profiles/
    └── ProfileName/
        ├── ProfileName.ti1
        ├── ProfileName.ti2
        ├── ProfileName.ti3
        ├── ProfileName.tif / _01.tif / _02.tif
        ├── ProfileName.icc
        ├── ProfileName_sanity_check.txt
└── Pre-made_Targets/
    ├── Patch Width 8-11mm - Expert (Use rig-guide-ruler)/
    ├── Patch Width 12-15mm - Intermediate (Easy with ruler)
    └── Patch Width 16-30mm - Easy (Freehand possible)
└── Argyll_Printer_Profiler_YYYYMMDD.log
└── Argyll_Printer_Profiler.py
└── Argyll_Printer_Profiler.command
└── Argyll_Printer_Profiler.ini

The script will create a new folder for each profile, named after the profile name. A selection of targets is provided in the Pre-made_Targets folder, grouped by patch width and ease of use.


ArgyllCMS Commands and Defaults

targen

Used to generate color values:

printtarg

chartread

colprof

profcheck


ICC Profile Installation

After successful creation:

macOS applications must be restarted to see the new profile.


Logs and Debugging

Log files are essential for:

**If you require more detailed debugging information: **In the .ini file, locate the common parameters for the command you want to debug:

Change the -v argument on any of the parameters to -v2. Now terminal output and log file will show detailed debug output from ArgyllCMS commands.


Important Notes and Best Practices


Troubleshooting

Script won’t run

For .command script on Linux or MacOS:

Script does not find ArgyllCMS installation

Make sure ArgyllCMS is properly installed. Under chapter Installation see sections:

Path warnings above main menu

ICC/ICM not copied

Strip read recognised as other strip

If reading strips of a chart frequently gives warning that the strip is recognised as another strip, this is an inperfection caused by the random distribution of patches by the ArgyllCMS printtarg command. Each generated chart has a seed number at the bottom, determining the random sequence. the “-R number” argument can be used with printtarg to make sure to use the same seed number every time, to reproduce a known good patch distribution.

Many charts deliverd with this script have not been verified, thus there is a chance this type of error may occur. For this reason the command used to generate most targets have been provided (look in the folder of pre-made targets), so that the user can re-generate a target with a new random distribution. When a good working patch sequence is found, which does not give lots of “strip recognised as another strip” type error, then use the -R argument to make sure to keep the seed number. In many cases this seed number can then also be used on other similar targets.

colprof gray-axis errors

Try the following:


End of documentation.