iccgamut
Author: Graeme Gill

## xicc/iccgamut

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.

### Usage

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
-e Create X3DOM edge plot
-E Create X3DOM all possible edge plot
-F Create X3DOM face plot
-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.

### Comments

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 -e flag creates an X3DOM file named profile_e.x3d.html file containing a plot of the device cube/hyper-cube edges in colorspace. This can be useful in visualizing how the colorants interact.
The -E flag creates an X3DOM file named profile_e.x3d.html file containing a plot of all possible device cube/hyper-cube vertex paths in colorspace. This can be useful in visualizing how the colorants interact.
The -F flag creates an X3DOM file named profile_f.x3d.html file containing a plot of all possible device cube/hyper-cube 2 dimensional faces in colorspace. The faces will be randomly colored. This can be useful in visualizing how the colorants interact.
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 raw 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 raw 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.

### Example

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.