
linkicc Command in Linux
The icclink, now called linkicc command, is a little CMS device link generator. It is a library (lcms) that generates a devicelink profile, linking color transformations between devices with specific ICC profiles. This allows direct color management from one device's color space to another without intermediary conversions. Note that color spaces must be compatible, except for Lab and XYZ, which can be interchanged.
Table of Contents
Here is a comprehensive guide to the options available with the linkicc command −
- Syntax of linkicc Command
- linkicc Command Options
- Built-in Profiles in linkicc
- Examples of linkicc Command in Linux
Note − The icclink command has been renamed to linkicc primarily for clarity and consistency within the Little CMS (LCMS) library. Therefore, the linkicc term will be used instead of icclink in this tutorial.
Syntax of linkicc Command
The syntax of the linkicc command is as follows −
linkicc [options] [profiles]
In the above syntax, the [options] field is used to specify the options given in the next section. The [profiles] option is used to specify the ICC profiles, typically two that need to be linked.
linkicc Command Options
The options of the linkicc (icclink) command are listed below −
Options | Description |
---|---|
-a NUM | Observer adaptation (abs. colorimetric only, 0 to 1.0) [default: 1.0] |
-b | Black point compensation |
-c precision | Precision level (0=LowRes, 1=Normal, 2=Hi-res) [default: 1] |
-d description | Description text (supports quotes) |
-h NUM | Help summary (0=help, 1=Built-in profiles, 2=Examples, 3=Contact) |
-k inklimit | Ink limit in % (CMYK only, 0-400.0) [default: 400.0] |
-l | Use linearization curves (may reduce accuracy) |
-n gridpoints | Precision via CLUT points count |
-o profile | Output profile name [default: devicelink.icc] |
-r profileversion | Profile version (2.0 to 4.3) [default: 4.3] |
-t NUM | Rendering intent 0=Perceptual [default]: 1=Relative colorimetric, 2=Saturation, 3=Absolute colorimetric, 10-15=Preserve black options |
-v verbosity | Verbosity level (0=none to 3=very high) [default: 0] |
-x | Guess the device class for the profile |
-y copyright | Copyright notice [default: "No copyright, use freely"] |
-8 | Generate 8-bit devicelink profile |
Built-in Profiles in linkicc
The built-in profiles in linkicc are predefined color profiles that can be used when creating devicelink profiles. These profiles represent various color spaces or types, which can serve as source or target profiles in color management processes. Here is a list of each built-in profile −
Profiles | Description |
---|---|
*Lab2 | D50-based v2 CIEL*a*b |
*Lab4 | D50-based v4 CIEL*a*b |
*Lab | D50-based v4 CIEL*a*b |
*XYZ | CIE XYZ (PCS) |
*sRGB | sRGB color space |
*Gray22 | Monochrome of Gamma 2.2 |
*Gray30 | Monochrome of Gamma 3.0 |
*null | Monochrome black for all input |
*Lin2222 | CMYK linearization of gamma 2.2 on each channel |
Examples of linkicc Command in Linux
In this section, the usage of the linkicc (icclink) command will be discussed with examples −
Creating Devicelink Profile
To create a devicelink, use the linkicc (icclink) command with two profile files without any option −
linkicc profile1.icc profile2.icc

The above command will generate a file devicelink.icc in the current working directory.
To get the verbose output, use the -v option with a verbosity level from 0 to 3.
linkicc -v 3 profile1.icc profile2.icc

Creating a High Precision Devicelink Profile
To create a high-precision devicelink, use the -c option with a precision number of 2.
linkicc -c 2 -o hp_devicelink.icc profile1.icc profile2.icc

The -o option is used to specify the output file name.
Setting Ink Limit for CMYK Profiles
The default ink limit of a CMYK profile is 400, to modify it, use the -k option with percentages 0 to 400 −
linkicc -k 300.0 -o inklimited.icc cmyk1.icc cmyk1.icc

Using Different Rendering Intent
To use the alternate rendering intent, use the -t option with the intent number −
linkicc -t 3 -o new_profile.icc profile1.icc profile2.icc
The rendering intents in linkicc control color conversion between devices with different gamuts. A list of intents is given below −
- 1 = Relative colorimetric
- 2 = Saturation
- 3 = Absolute colorimetric
- 10-15 = Preserve black options
Creating a Custom Output Profile for sRGB to CMYK
To create a custom output profile from sRGB to CMYK, use the following command −
linkicc -o new_profile.icc *sRGB cmyk.icc
The above command creates a devicelink profile (new_profile.icc) for converting colors from sRGB to the CMYK color space defined by cmyk.icc.
Creating XYZ to sRGB Output Profile
To create an sRGB output profile that maps colors from XYZ to sRGB, use the following command −
linkicc -x -o sRGBLab.icc *XYZ *sRGB
The -x option allows linkicc command to guess the device class for the resulting profile, useful when mixing color spaces.
Generating Copyright Notice
By default, the linkicc command generated the "No copyright, use freely" notice as shown in the following image −

To generate a specific copyright notice for the generated profile, use the -y option with the copyright string −
linkicc -y "© 2024 Demo. All rights reserved." -o custom_profile.icc *sRGB *Lab

Conclusion
The linkicc command, formerly icclink, generates device link profiles for color management between devices with specific ICC profiles. It facilitates direct color space transformations, ensuring device compatibility, except for Lab and XYZ, which can be interchanged.
By using the linkicc command, different types of devicelink profiles can be created, including high-precision and CMYK-specific profiles, while adjusting settings like ink limits and copyright notices. The command allows for the creation of custom output profiles for conversions, such as from sRGB to CMYK or XYZ to sRGB.
In this tutorial, we explained the linkicc command, its syntax, options, and usage in Linux with examples.