icclu
Author: Graeme Gill

## icclib/icclu

### Summary

Lookup individual color values through any ICC profile table, either interactively, or as a batch.

### Usage summary

icclu [-v level] [-f func] [-i intent] [-o order] profile
-v level Verbosity level 0 - 2 (default = 1)
-f function f = forward, b = backwards, g = gamut, p = preview
-i intent p = perceptual, r = relative colorimetric,
s = saturation, a = absolute
-p oride x = XYZ_PCS, l = Lab_PCS, y = Yxy,
-o order n = normal (priority: lut > matrix > monochrome)
r = reverse (priority: monochrome > matrix > lut)
-s scale Scale device range 0.0 - scale rather than 0.0 - 1.0
The colors to be translated should be fed into standard input,
one input color per line, white space separated.
A line starting with a # will be ignored.
A line not starting with a number will terminate the program.

###

### Flags and Parameters

The -v parameter sets the level of verbosity. Default is level 1, which repeats each input value, the colorspaces of input and output, the type of conversion algorithm used, and if the result was clipped. Level 2 adds prints extra information about the profile before doing the conversions. Level 0 turns off all verbosity, just outputting the results of each conversion. Use the latter to capture batch output ready for further processing.
The -f flag selects which type of table or conversion is to be used.
The -i flag selects the intent for a lut based profile.
Normally the native PCS (Profile Connection Space) of a device or abstract profile is used, but the -p flag
allows this to be overridden, and XYZ, L*a*b* or Yxy space to be used.
A profile is allowed to contain more than the minimum number of elements or table needed to
describe a certain transform, and may contain redundant descriptions. By default, lut based
table information will be used first if present, followed by matrix/shaper information, and
only using monochrome information if it is all that is present. -o r reverses this order.
Usually device values are processed and displayed using a normalized value range between 0.0 and 1.0
Sometimes other systems scale them to some other range (such as 100 or 255) due to an underlying
binary representation. The -s flag lets you input and display such data in its normal range. For instance,
if your device values have a range between 0 and 255, use -s 255.

### Usage Details and Discussion

Typical usage for an output profile might be:
icclu -ff -ip profile.icm
Normally the program is interactive, allowing the user to type in input color values, each number separated by a space, and the resulting output color being looked up and displayed after pressing return. To batch process a group of color values, prepare a text file containing each input value on a separate line, and use the input indirection facilities of your command line shell to redirect this input file into the standard input of icclu. The output can be captured to a file by redirecting standard output to a file. In most shells this would be done something like this:
icclu -ff -ip profile.icm < inputvalues.txt > outputvalues.txt