cd-color

cd-color — Color object data functionality

Functions

const gchar * cd_color_swatch_get_name ()
const CdColorLab * cd_color_swatch_get_value ()
CdColorXYZ * cd_color_xyz_new ()
CdColorLab * cd_color_lab_new ()
CdColorRGB * cd_color_rgb_new ()
CdColorYxy * cd_color_yxy_new ()
CdColorUVW * cd_color_uvw_new ()
CdColorSwatch * cd_color_swatch_new ()
void cd_color_xyz_free ()
void cd_color_rgb_free ()
void cd_color_lab_free ()
void cd_color_yxy_free ()
void cd_color_uvw_free ()
void cd_color_swatch_free ()
CdColorXYZ * cd_color_xyz_dup ()
CdColorLab * cd_color_lab_dup ()
CdColorRGB * cd_color_rgb_dup ()
CdColorYxy * cd_color_yxy_dup ()
CdColorUVW * cd_color_uvw_dup ()
CdColorSwatch * cd_color_swatch_dup ()
void cd_color_xyz_set ()
void cd_color_rgb_set ()
void cd_color_lab_set ()
void cd_color_yxy_set ()
void cd_color_uvw_set ()
void cd_color_swatch_set_name ()
void cd_color_swatch_set_value ()
void cd_color_xyz_copy ()
void cd_color_yxy_copy ()
void cd_color_uvw_copy ()
void cd_color_lab_copy ()
gdouble cd_color_lab_delta_e76 ()
void cd_color_xyz_clear ()
void cd_color_rgb_copy ()
void cd_color_rgb8_to_rgb ()
void cd_color_rgb_to_rgb8 ()
void cd_color_yxy_to_xyz ()
void cd_color_xyz_to_yxy ()
void cd_color_xyz_to_uvw ()
void cd_color_yxy_to_uvw ()
void cd_color_uvw_set_planckian_locus ()
gdouble cd_color_uvw_get_chroma_difference ()
gboolean cd_color_get_blackbody_rgb ()
void cd_color_rgb_interpolate ()
void cd_color_rgb_from_wavelength ()
gdouble cd_color_xyz_to_cct ()
void cd_color_xyz_normalize ()
GPtrArray * cd_color_rgb_array_new ()
gboolean cd_color_rgb_array_is_monotonic ()
GPtrArray * cd_color_rgb_array_interpolate ()

Types and Values

Object Hierarchy

    GBoxed
    ├── CdColorLab
    ├── CdColorRGB
    ├── CdColorSwatch
    ├── CdColorUVW
    ├── CdColorXYZ
    ╰── CdColorYxy

Description

Functions to manipulate color values.

Functions

cd_color_swatch_get_name ()

const gchar *
cd_color_swatch_get_name (const CdColorSwatch *swatch);

Since: 0.1.32


cd_color_swatch_get_value ()

const CdColorLab *
cd_color_swatch_get_value (const CdColorSwatch *swatch);

Since: 0.1.32


cd_color_xyz_new ()

CdColorXYZ *
cd_color_xyz_new (void);

Allocates a color value.

Returns

A newly allocated CdColorXYZ object

Since: 0.1.0


cd_color_lab_new ()

CdColorLab *
cd_color_lab_new (void);

Allocates a color value.

Returns

A newly allocated CdColorLab object

Since: 0.1.32


cd_color_rgb_new ()

CdColorRGB *
cd_color_rgb_new (void);

Allocates a color value.

Returns

A newly allocated CdColorRGB object

Since: 0.1.0


cd_color_yxy_new ()

CdColorYxy *
cd_color_yxy_new (void);

Allocates a color value.

Returns

A newly allocated CdColorYxy object

Since: 0.1.0


cd_color_uvw_new ()

CdColorUVW *
cd_color_uvw_new (void);

Allocates a color value.

Returns

A newly allocated CdColorUVW object

Since: 1.1.6


cd_color_swatch_new ()

CdColorSwatch *
cd_color_swatch_new (void);

Allocates a color value.

Returns

A newly allocated CdColorSwatch object

Since: 0.1.32


cd_color_xyz_free ()

void
cd_color_xyz_free (CdColorXYZ *src);

Deallocates a color value.

Parameters

src

the color object

 

Since: 0.1.0


cd_color_rgb_free ()

void
cd_color_rgb_free (CdColorRGB *src);

Deallocates a color value.

Parameters

src

the color object

 

Since: 0.1.0


cd_color_lab_free ()

void
cd_color_lab_free (CdColorLab *src);

Deallocates a color value.

Parameters

src

the color object

 

Since: 0.1.32


cd_color_yxy_free ()

void
cd_color_yxy_free (CdColorYxy *src);

Deallocates a color value.

Parameters

src

the color object

 

Since: 0.1.0


cd_color_uvw_free ()

void
cd_color_uvw_free (CdColorUVW *src);

Deallocates a color value.

Parameters

src

the color object

 

Since: 1.1.6


cd_color_swatch_free ()

void
cd_color_swatch_free (CdColorSwatch *src);

Deallocates a color swatch.

Parameters

src

the color object

 

Since: 0.1.32


cd_color_xyz_dup ()

CdColorXYZ *
cd_color_xyz_dup (const CdColorXYZ *src);

Since: 0.1.27


cd_color_lab_dup ()

CdColorLab *
cd_color_lab_dup (const CdColorLab *src);

Since: 0.1.32


cd_color_rgb_dup ()

CdColorRGB *
cd_color_rgb_dup (const CdColorRGB *src);

Since: 0.1.27


cd_color_yxy_dup ()

CdColorYxy *
cd_color_yxy_dup (const CdColorYxy *src);

Since: 0.1.27


cd_color_uvw_dup ()

CdColorUVW *
cd_color_uvw_dup (const CdColorUVW *src);

Since: 1.1.6


cd_color_swatch_dup ()

CdColorSwatch *
cd_color_swatch_dup (const CdColorSwatch *src);

Since: 0.1.32


cd_color_xyz_set ()

void
cd_color_xyz_set (CdColorXYZ *dest,
                  gdouble X,
                  gdouble Y,
                  gdouble Z);

Initialises a color value.

Parameters

dest

the destination color

 

X

component value

 

Y

component value

 

Z

component value

 

Since: 0.1.27


cd_color_rgb_set ()

void
cd_color_rgb_set (CdColorRGB *dest,
                  gdouble R,
                  gdouble G,
                  gdouble B);

Initialises a color value.

Parameters

dest

the destination color

 

R

component value

 

G

component value

 

B

component value

 

Since: 0.1.27


cd_color_lab_set ()

void
cd_color_lab_set (CdColorLab *dest,
                  gdouble L,
                  gdouble a,
                  gdouble b);

Initialises a color value.

Parameters

dest

the destination color

 

L

component value

 

a

component value

 

b

component value

 

Since: 0.1.32


cd_color_yxy_set ()

void
cd_color_yxy_set (CdColorYxy *dest,
                  gdouble Y,
                  gdouble x,
                  gdouble y);

Initialises a color value.

Parameters

dest

the destination color

 

Y

component value

 

x

component value

 

y

component value

 

Since: 0.1.27


cd_color_uvw_set ()

void
cd_color_uvw_set (CdColorUVW *dest,
                  gdouble U,
                  gdouble V,
                  gdouble W);

Initialises a color value.

Parameters

dest

the destination color

 

U

component value

 

V

component value

 

W

component value

 

Since: 1.1.6


cd_color_swatch_set_name ()

void
cd_color_swatch_set_name (CdColorSwatch *dest,
                          const gchar *name);

Initialises a swatch name.

Parameters

dest

the destination swatch

 

name

component name

 

Since: 0.1.32


cd_color_swatch_set_value ()

void
cd_color_swatch_set_value (CdColorSwatch *dest,
                           const CdColorLab *value);

Initialises a swatch value.

Parameters

dest

the destination swatch

 

value

component value

 

Since: 0.1.32


cd_color_xyz_copy ()

void
cd_color_xyz_copy (const CdColorXYZ *src,
                   CdColorXYZ *dest);

Deep copies a color value.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_yxy_copy ()

void
cd_color_yxy_copy (const CdColorYxy *src,
                   CdColorYxy *dest);

Deep copies a color value.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_uvw_copy ()

void
cd_color_uvw_copy (const CdColorUVW *src,
                   CdColorUVW *dest);

Deep copies a color value.

Parameters

src

the source color

 

dest

the destination color

 

Since: 1.1.6


cd_color_lab_copy ()

void
cd_color_lab_copy (const CdColorLab *src,
                   CdColorLab *dest);

Deep copies a color value.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.32


cd_color_lab_delta_e76 ()

gdouble
cd_color_lab_delta_e76 (const CdColorLab *p1,
                        const CdColorLab *p2);

Calculates the ΔE of two colors using the 1976 formula.

Parameters

p1

Lab value 1

 

p2

Lab value 2

 

Returns

distance metric, where JND ΔE ≈ 2.3

Since: 0.1.32


cd_color_xyz_clear ()

void
cd_color_xyz_clear (CdColorXYZ *dest);

Initialises a color value.

Parameters

dest

the destination color

 

Since: 0.1.27


cd_color_rgb_copy ()

void
cd_color_rgb_copy (const CdColorRGB *src,
                   CdColorRGB *dest);

Deep copies a color value.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_rgb8_to_rgb ()

void
cd_color_rgb8_to_rgb (const CdColorRGB8 *src,
                      CdColorRGB *dest);

Convert from one color format to another.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_rgb_to_rgb8 ()

void
cd_color_rgb_to_rgb8 (const CdColorRGB *src,
                      CdColorRGB8 *dest);

Convert from one color format to another.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_yxy_to_xyz ()

void
cd_color_yxy_to_xyz (const CdColorYxy *src,
                     CdColorXYZ *dest);

Convert from one color format to another.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_xyz_to_yxy ()

void
cd_color_xyz_to_yxy (const CdColorXYZ *src,
                     CdColorYxy *dest);

Convert from one color format to another.

Parameters

src

the source color

 

dest

the destination color

 

Since: 0.1.27


cd_color_xyz_to_uvw ()

void
cd_color_xyz_to_uvw (const CdColorXYZ *src,
                     const CdColorXYZ *whitepoint,
                     CdColorUVW *dest);

Convert from one color format to another.

Parameters

src

the source color

 

whitepoint

the whitepoint

 

dest

the destination color

 

Since: 1.1.6


cd_color_yxy_to_uvw ()

void
cd_color_yxy_to_uvw (const CdColorYxy *src,
                     CdColorUVW *dest);

Convert from one color format to another.

Parameters

src

the source color

 

dest

the destination color

 

Since: 1.1.6


cd_color_uvw_set_planckian_locus ()

void
cd_color_uvw_set_planckian_locus (CdColorUVW *dest,
                                  gdouble temp);

Sets the CIEUVW color from a Planckian locus of specific temperature.

Parameters

dest

destination color

 

temp

temperature in Kelvin

 

Since: 1.1.6


cd_color_uvw_get_chroma_difference ()

gdouble
cd_color_uvw_get_chroma_difference (const CdColorUVW *p1,
                                    const CdColorUVW *p2);

Gets the chromaticity distance in the CIE 1960 UCS.

Parameters

p1

color

 

p2

color

 

Returns

The Euclidean distance

Since: 1.1.6


cd_color_get_blackbody_rgb ()

gboolean
cd_color_get_blackbody_rgb (guint temp,
                            CdColorRGB *result);

Get the blackbody color for a specific temperature. If the temperature range is outside 1000K to 10000K then the result is clipped.

Parameters

temp

the temperature in Kelvin

 

result

the destination color

 

Returns

TRUE if temp was in range and the result accurate

Since: 0.1.26


cd_color_rgb_interpolate ()

void
cd_color_rgb_interpolate (const CdColorRGB *p1,
                          const CdColorRGB *p2,
                          gdouble index,
                          CdColorRGB *result);

Since: 0.1.26


cd_color_rgb_from_wavelength ()

void
cd_color_rgb_from_wavelength (CdColorRGB *dest,
                              gdouble wavelength);

Set an RGB color which is roughly representative to the wavelength.

Parameters

dest

a CdColorRGB for the RGB result

 

wavelength

the wavelength roughly between 380nm and 780nm

 

Since: 1.3.4


cd_color_xyz_to_cct ()

gdouble
cd_color_xyz_to_cct (const CdColorXYZ *src);

Gets the correlated color temperature for the XYZ value.

Parameters

src

the source color

 

Since: 1.1.6


cd_color_xyz_normalize ()

void
cd_color_xyz_normalize (const CdColorXYZ *src,
                        gdouble max,
                        CdColorXYZ *dest);

Normalizes src to y=1.0

Parameters

src

the source color

 

dest

the destination color

 

Since: 1.1.6


cd_color_rgb_array_new ()

GPtrArray *
cd_color_rgb_array_new (void);

Creates a new RGB array.

Returns

New array.

[element-type CdColorRGB][transfer full]

Since: 0.1.31


cd_color_rgb_array_is_monotonic ()

gboolean
cd_color_rgb_array_is_monotonic (const GPtrArray *array);

Checks the array for monotonicity.

Parameters

array

Input array.

[element-type CdColorRGB]

Returns

TRUE if the array is monotonic

Since: 0.1.31


cd_color_rgb_array_interpolate ()

GPtrArray *
cd_color_rgb_array_interpolate (const GPtrArray *array,
                                guint new_length);

Interpolate the RGB array to a different size. This uses the Akima interpolation algorithm unless the array would become non-monotonic, in which case it falls back to linear interpolation.

Parameters

array

Input array.

[element-type CdColorRGB]

new_length

the target length of the return array

 

Returns

An array of size new_length or NULL.

[element-type CdColorRGB][transfer full]

Since: 0.1.31

Types and Values

CdColorRGB8

typedef struct {
	guint8	 R;
	guint8	 G;
	guint8	 B;
} CdColorRGB8;