xicc/tiffgamut

Summary

Create a gamut file or VRML file of the color gamut of the contents of a TIFF image.
tiffgamut allows creation of gamut files from the pixel values in a TIFF raster image, as defined by an ICC profile, in L*a*b* or CIECAM02 Jab colorspace, and can also represent the gamut as a VRML file. This can be used for visualizing and comparing the gamut of an image to the colorspace it is in, or a colorspace it might get transformed into, and can also be used to create an image source gamut for use with collink.

NOTE that if you are creating an image gamut suitable for use with the collink -g or -G flags, or colprof -g, use the Jab appearance space intent for appearance space gamut mappings, and the same input viewing conditions to be used in collink or colprof using the -c flag, i.e. "tiffgamut -ij -c2 sRGB.icm image.tif"

Usage Summary

tiffgamut [-v level] [profile.icm | embedded.tif] infile.tif
 -v            Verbose
  -d sres      Surface resolution details 1.0 - 50.0
 -w            emit VRML .wrl file as well as CGATS .gam file
 -n            Don't add VRML axes or white/black point
 -k            Add markers for prim. & sec. "cusp" points
 -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
 -c viewcond   set appearance mode and viewing conditions for CIECAM02,
               either an enumerated choice, or a parameter:value change
           pp - Practical Reflection Print
           pe - Print evaluation environment
           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   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)
         f:flare      Flare light % of image luminance (default 1)
         f:X:Y:Z      Flare color as XYZ (default media white)
         f:x:y        Flare color as x, y

Usage Details and Discussion

The -v flag dumps out the ICC profile header information.

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 VRML file to be produced, as well as a gamut file.

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

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 -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 -c parameter sets the output space to CIECAM02 appearance Jab values, and also allows choosing a set of viewing conditions, either by choosing a typical viewing environment, or controlling particular viewing condition parameters. This is only functional if an ICC profile is provided.

If the TIFF file is in a device space (ie. RGB, CMYK etc.), then it is necessary to supply an ICC profile to translate the device space values to a CIE space value such as L*a*b* or CIECAM02 Jab space for creating a gamut surface. For the ICC profile provided it is then possible to select exactly what type of conversion is used. A TIFF file with an embeded ICC profile may be supplied as the profile argument - e.g. to get the gamut of a tiff file that contains an embedded profile use something like:

    tiffgamut image.tif image.tif

If a TIFF file is already in a CIE space such as CIELab or ICCLab, then it is not necessary to select an ICC profile,  although a PCS to PCS colorspace profile may be chosen.