All Manuals > CAPI User Guide and Reference Manual > 15 The Color System

15.1 Color specs

A color spec is an object which numerically defines a color in some color-model. For example the object returned by the call:

(color:make-rgb 0.0 1.0 0.0) =>
#(:RGB 0.0 1.0 0.0) 

defines the color green in the RGB color model. Generally short-floats are used; this results in the most efficient color conversion process. However, any float type can be used.

To find out what color-spec is associated with a color name, use the function get-color-spec. It returns the color-spec associated with a symbol. If there is no color-spec associated with color-name, this function returns nil. If color-name is the name of a color alias, the color alias is dereferenced until a color-spec is found.

Color-specs are made using standard functions make-rgb, make-hsv and make-gray. For example:

(make-rgb 0.0s0 1.0s0 0.0s0)
(make-hsv 1.2s0 0.5s0 0.9s0)
(make-gray 0.66667s0)

To create a color spec with an alpha component using the above constructors, pass an extra optional argument. For example this specifies green with 40% transparency:

(make-rgb 0.0s0 1.0s0 0.0s0 0.6s0)

You can also make a transparent color using color-with-alpha:

(color-with-alpha color-spec 0.8s0)

Note that the alpha component is not supported on Motif.

The function color-model returns the model in which a color-spec object has been defined.

The components of color specs can be accessed using the following functions:

RGB model
HSV model
Gray model

When these readers are supplied a color spec of their model, they just return the corresponding component. If they are supplied a color spec of another model, they compute the component.

The function color-alpha can be used to access the alpha value of a color (its opacity). If the color does not have an alpha, color-alpha returns 1.0.

CAPI User Guide and Reference Manual (Macintosh version) - 01 Dec 2021 19:31:24