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 −

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
linkicc Command in Linux1

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
linkicc Command in Linux2

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
linkicc Command in Linux3

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
linkicc Command in Linux4

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 −

linkicc Command in Linux5

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
linkicc Command in Linux6

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.

Advertisements