Create a gamut file or X3DOM file  of the color gamut of an ICC profile.
iccgamut allows creation of gamut files from the forward or backwards table of an ICC profile, in Lab or CIECAM02 Jab colorspace, and can also representing the gamut as a X3DOM file.

See 3D Viewing Format for switching to VRML or X3D output format.


iccgamut [-options] profile
 -v            Verbose
 -d sres       Surface resolution details 1.0 - 50.0
 -w            emit X3DOM .x3d.html file as well as CGATS .gam file
 -n            Don't add X3DOM axes or white/black point
 -k            Add X3DOM markers for prim. & sec. "cusp" points
 -f function   f = forward*, b = backwards
  -i intent     p = perceptual, r = relative colorimetric,
               s = saturation, a = absolute (default), d = profile default
 -o order      n = normal (priority: lut > matrix > monochrome)
               r = reverse (priority: monochrome > matrix > lut)
 -p oride      l = Lab_PCS (default), j = CIECAM02 Appearance Jab
 -l tlimit     set total ink limit, 0 - 400% (estimate by default)
 -L klimit     set black ink limit, 0 - 100% (estimate by default)
 -c viewcond   set viewing conditions for CIECAM02,
               either an enumerated choice, or a series of parameters:value changes
            pc - Critical print evaluation environment (ISO-3664 P1)
pp - Practical Reflection Print (ISO-3664 P2)
            pe - Print evaluation environment (CIE 116-1995)
            pm - Print evaluation with partial Mid-tone adaptation
            mt - Monitor in typical work environment
            mb - Monitor in bright work environment
            md - Monitor in darkened work environment
            jm - Projector in dim environment
            jd - Projector in dark environment
           pcd - Photo CD - original scene outdoors
            ob - Original scene - Bright Outdoors
            cx - Cut Sheet Transparencies on a viewing box
         s:surround   n = auto, a = average, m = dim, d = dark,
                      c = transparency (default average)
         w:X:Y:Z      Adapted white point as XYZ (default media white)
         w:x:y        Adapted white point as x, y
         a:adaptation Adaptation luminance in cd.m^2 (default 50.0)
         b:background Background % of image luminance (default 20)
         l:imagewhite Image white in cd.m^2 if surround = auto (default 250)

         f:flare      Flare light % of image luminance (default 0)
        g:glare      Glare light % of ambient (default 5)
         g:X:Y:Z      Glare color as XYZ (default media white)
         g:x:y        Glare color as x, y
         h:hkscale    Helmholtz-Kohlrausch effect scale factor (default 1.0)
         m:mtaf       Mid-tone partial adaptation factor (default 0.0)
         m:X:Y:Z      Mid-tone Adaptation white as XYZ (default D50)
         m:x:y        Mid-tone Adaptation white as x, y

 -x pcent       Expand/compress gamut cylindrically by percent
 -s             Create special cube surface topology plot
profile          The name of the ICC profile, as well as the basename of the gamut [.gam] and/or X3DOM [.x3d.html] file.


The parameters are all those that control which table in the ICC profile to use, as well as what color space to convert it to.

The -v flag dumps out the ICC profile header information. Using -v -w will also print the gamut volume in cubic L*a*b* units.

The -d parameter controls the level of detail displayed in the surface. The parameter roughly corresponds to a deltaE value, so smaller values give greater detail. The default value is around 10, and is a good place to start. Small values may take a lot of time to generate, and will produce big files.

The -w flag causes a X3DOM file to be produced, as well as a gamut file.

The -n flag suppresses the L*a*b* axes being created in the X3DOM.

The -k flag adds markers for each of the primary and secondary "cusp" points (Red, Yellow, Green, Cyan, Blue & Magenta). No markers will be displayed if the cusps cannot be determined.

The -f parameter allows choosing the ICC table to be used in plotting the gamut. The backwards tables generally incorporate gamut compression, and therefore don't reflect the native capabilities of the device.

The -i flag selects the intent transform used for a lut based profile. It also selects between relative and absolute colorimetric for non-lut base profiles. Note that anything other than colorimetric may not represent the native capabilities of the device. The default intent will be absolute colorimetic for L*a*b* output, and CIECAM02 appearance for Jab output.

An ICC 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. The -o flag, reverses this order.   

-p: By default the gamut will be created in L*a*b* colorspace. If  -pj is selected, then CIECAM02 appearance space Jab will be used for the output, and the viewing conditions will be taken into account. Jab space is what is normally needed to be compatible with the default intents used in colprof.
Note that the CIECAM02 output space selection by default uses the colorimetric transform of the profile resulting in the appearance of the native device, but that the perceptual or saturation transforms may be used by selecting them using the -i parameter, which may give a different result with some profiles. This may be desirable if an image is to be transformed through the perceptual or saturation tables of a profile as part of a link with an Argyll generated output profile, since it will then represent the apparent gamut of the image when subject to these tables. If the absolute colorimetric intent is chosen using -ia in combinations with -pj, then  Jab with a fixed white reference is used, which emulates an absolute CIECAM02 Jab appearance space.

The -l parameter allows setting a total ink limit (TAC) for printing devices. If a device has a total ink limit, and hasn't been characterised with device values above this limit, then plotting the gamut in these areas will almost certainly be misleading. tables. By default, a total ink limit will be estimated from the profile tables. The ink limit will be in final calibrated device values if the profile includes calibration information.

The -L parameter allows setting a black ink limit for printing devices. If a device is to be used with a black ink limit, then it is useful to evaluate the gamut with the limit in place. By default, a black ink limit will be estimated from the profile tables. The ink limit will be in final calibrated device values if the profile includes calibration information.

The -c parameter allows setting the CIECAM02 viewing conditions, either by choosing a typical viewing environment, or controlling particular viewing condition parameters.

The -x parameter allows expanding or compressing the resulting gamut in a cylindrical direction by the given percentage :- i.e "-x 120" will expand by 20%. This may be useful for creating a general compression gamut mapping by using such an expanded device gamut as input to collink -g or -G.

The -s flag creates a special hyper-cube surface plot that is artificially colored. This can be useful for identifying the topology of the black ink color response.


To create a view in L*a*b* of the absolute gamut of a CMYK file with an ink limit of 260%, one might use:

    iccgamut -w -ff -ia -l260 profile.icm

and the resulting files will be profile.gam and profile.x3d.html.

To create a gamut suitable for CIECAM02  gamut mapping space in colprof or collink, something like

    iccgamut -ir -pj -cmt  profile.icm

where the viewing conditions "mt" should the same as the source conditions in colprof or collink.