Name

cpthsv — modify hue, saturation and colour value of GMT colour palette tables.

Synopsis

cpthsv -T transform [-h ] [-o path ] [-v ] [-V ] [-z ] [-Z ] [-4 ] [-5 ] [-6 ] [path]

DESCRIPTION

The cpthsv utility reads a colour palette, converts its colours to HSV (if needed), modifies these values in some simple ways, converts back to the original colour-space (if needed) and writes the result. So cpthsv can (de)saturate, brighten, darken or hue-shift.

Currently, RGB and HSV colour-spaces are transformed, other spaces and fill-types will pass through without being modified. (The --verbose option reports the number of segments transformed.)

The program will read from stdin if a file is not specified as the final argument, and write to stdout if the -o option is not specified.

The hue value is taken to be between 0 and 360, while the saturation and value components are taken to be between 0 and 1,

OPTIONS

--backtrace-file path

Specify a file to which to write a formatted backtrace. The file will only be created if there is a backtrace created, typically when an error occurs.

--backtrace-format format

Specify the format of the backtrace written to the files specified by --backtrace-file, one of plain, xml or json.

-h, --help

Brief help.

--hinge value

Specify the z-value of the hinge in the cpt file. If there is no hinge directive (i.e., a SOFT_HINGE or HARD_HINGE) in the input, then this option has no effect.

When normalising (with the -z option), this gives the z-value in the input which is mapped to zero. That z-value must be one of the stops in the input.

When denormalising (with the -Z option), this gives the value in the output to which zero in the input is mapped. This option can be viewed as the counterpart to the +hvalue appended to the -C option for the makecpt (1) .

--hinge-active

If the input cpt has a SOFT_HINGE directive, then activate that hinge (resulting in independent scaling of the two halves of the gradient either side of the hinge).

If the input does not have such a directive, then this option has no effect.

-o, --output path

Write the output to path, rather than stdout.

-T, --transform string

Specify a transformation to perform. One of h, s or v followed by a number and optional operation. The effect of the number depends on the operation: one of x (multiply by number), % (scale by percentage) or +/- (add or subtract value). An RGB colour with saturation 0.5 would be transformed to one with saturation 0.55 by applying s1.1x or s110% or s0.05+. If the operator is not given then % is assumed.

Transforms which take colours outside the HSV colour-space are permitted, the result is truncation (eg, increasing a saturation of 0.8 with s0.3+ results in a saturation of 1.0). The exception is hue, which will error if transformed outside the 0–360 range.

Multiple transforms can be applied by separating transforms with commas. This is to be preferred over multiple calls to the program since the conversion between colour-spaces is necessarily lossy. Multiple transformations are applied in the order given in the argument.

-v, --verbose

Verbose operation.

-V, --version

Version information.

-z, --z-normalise

Normalise the z-values in the cpt output into the range 0/1 (or to -1/1 if a hinge is present) and add a RANGE directive if not present in the input. This is the form used in GMT master files.

This option requires that output cpt version is at least 5.

-Z, --z-denormalise

Set the z-values in the cpt output into the range given by the RANGE directive, and remove that directive. If there is no RANGE then this option does nothing.

-4, --gmt4

Use GMT 4 conventions when writing the cpt output: the colour-model code is uppercase, and the colours are separated by spaces.

This is incompatible with the -5 and -6 options of course.

At present this option is the default, but that will change at some point. So specify this option if your use of the output depends on the GMT 4 layout (consumed by a custom parser, for example).

-5, --gmt5

Use GMT 5 conventions when writing the cpt output: the colour-model code is lowercase, and the colours are separated by a solidus for RGB, CMYK, by a dash for HSV.

This is incompatible with the -4 and -6 options of course.

-6, --gmt6

As the -5 option, but allows the HARD_HINGE and SOFT_HINGE directives in place of the explicit HINGE = directive.

This is incompatible with the -4 and -5 options of course.

EXAMPLE

Lighten by 10% and desaturate by 20%:

cpthsv -v -T s80,v110 -o new.cpt old.cpt

AUTHOR

J.J. Green

SEE ALSO

GMT (1) .