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
         -T           
        Trace each step of conversions
       
    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.
      
    The -T flag shows a detailed trace of the internal
    color conversions for each color.
    
    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