pycolorbar.colors package#

Submodules#

pycolorbar.colors.colors_io module#

Color encoding and decoding functions.

class pycolorbar.colors.colors_io.CIELABEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding CIE LAB color values.

This class handles the conversion between external and internal CIELAB color values.

External data range: Luminance (0-100), A (-128,127), B (-128, 127) Internal data range: Luminance (0-1), A (-1,1), B (-1,1)

Note: A and B can theoretically range from -128 to +127 but practical ranges are smaller.

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.CIELUVEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding CIE LUV color values.

This class handles the conversion between external and internal LUV color values.

External data range: Luminance (0-100), U (-100,100), V (-100, 100) Internal data range: Luminance (0-1), U (-1,1), V (-1,1)

U* and V* can theoretically range from -100 to +100 but practical ranges are smaller. The u and v coordinates measure positions on green/red and blue/yellow axes.

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.CIEXYZEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding CIE XYZ color values.

This class handles the conversion between external and internal CIE XYZ color values.

External data range: X (0-100), Y (0-100), Z (0-100) Internal data range: X (0-1), Y (0-1), Z (0-1)

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.CMYKEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding CMYK color values.

This class handles the conversion between external and internal CMYK color values.

External data range: Cyan (0-100), Magenta (0-100), Yellow (0-100) Key/Black (0-100) Internal data range: Cyan (0-1), Magenta (0-1), Yellow (0-1) Key/Black (0-1)

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.ColorEncoderDecoder(external_data_range, internal_data_range, name)[source][source]#

Bases: object

Base Color Encoding-Decoding Class.

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

check_colors(colors)[source][source]#

Check colors array dimension, size and type validity.

Parameters:

colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

Returns:

colors – 2D array where each column represents a channel in the color space.

Return type:

numpy.ndarray

check_valid_external_data_range(colors, strict=False)[source][source]#

Check if the color values are within the external data range for each channel.

Raises an informative ValueError if a channel does not comply with the data range. If ‘strict’ is True, it ensures that not all values are within the internal data range.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • strict (bool, optional) – If True, performs a strict check to ensure that the values are within the external data range and not within the internal data range. Default is False.

Raises:

ValueError – If any channel values are not within the external data range or, if ‘strict’ is True, that not all channel values are also within the internal data range.

check_valid_internal_data_range(colors)[source][source]#

Check if the color values are within the internal data range for each channel.

Raises an informative ValueError if a channel does not comply with the data range.

Parameters:

colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

Raises:

ValueError – If any channel values are not within the internal data range.

decode(colors)[source][source]#

Decode color values from external to internal representation.

Parameters:

colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

Returns:

Decoded color values in internal representation.

Return type:

numpy.ndarray

encode(colors)[source][source]#

Encode color values from internal to external representation.

Parameters:

colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

Returns:

Encoded color values in external representation.

Return type:

numpy.ndarray

is_within_external_data_range(colors, strict: bool = False)[source][source]#

Check if the color values of each channels are within the external data range.

Optionally, perform a strict check to ensure that not all values are also within the internal data range.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • strict (bool, optional) – If True, performs a check to ensure that not all values are also within the internal data range. Default is False.

Returns:

If strict=False, True if all channel values are within the external data range, False otherwise. If strict=True, True if all channels values are within the external data range and not also all inside the internal data range, False otherwise.

Return type:

bool

is_within_internal_data_range(colors)[source][source]#

Check if the color values are within the internal data range for each channel.

Parameters:

colors (numpy.ndarray) – 2D-Array with the columns representing the color space dimensions.

Returns:

True if all channel values are within the internal data range, False otherwise.

Return type:

bool

class pycolorbar.colors.colors_io.HCLEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding HCL color values.

The color space is also known as PolarLUV or cylindrical transformations of the CIELUV (CIELChuv)

HCL rearrange the two CIELUV U and V chroma values into chroma (C) and hue (h). The CIELUV coordinate L* (luminance) remains unchanged.

This class handles the conversion between external and internal HCL color values.

External data range: Hue (0-255), Chroma (0-255), Luminance (0-255) Internal data range: Hue (0-1), Chroma (0-1), Luminance (0-1)

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.HSVEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding HSV (also called HSB) color values.

This class handles the conversion between external and internal HSV color values.

External data range: Hue (0-360), Saturation (0-100), Value (0-100) Internal data range: Hue (0-2π), Saturation (0-1), Value (0-1)

The Hue channel requires special handling for the conversion between degrees and radians.

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.LCHEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding LCH color values.

The color space is also known as PolarLAB or cylindrical transformations of the CIELAB (CIELChab)

LCH rearrange the two CIELAB A and B chroma values into chroma (C) and hue (h). The CIELAB coordinate L* (luminance) remains unchanged.

This class handles the conversion between external and internal LCh color values.

External data range: Luminance (0-100), Chroma (0-200), Hue (0-360) Internal data range: Luminance (0-1), Chroma (0-2), Hue (0-2π)

The Hue channel requires special handling for the conversion between degrees and radians.

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.RGBAEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding RGBA color values.

This class handles the conversion between external and internal RGB color values.

External data range: R (0-255), G (0-255), B (0-255), A (0-100) Internal data ranges: R (0-1), G (0-1), B (0-1), A (0-1)

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

class pycolorbar.colors.colors_io.RGBEncoderDecoder[source][source]#

Bases: ColorEncoderDecoder

A class for encoding and decoding RGB color values.

This class handles the conversion between external and internal RGB color values.

External data range: R (0-255), G (0-255), B (0-255) Internal data ranges: R (0-1), G (0-1), B (0-1)

Initialize a color encoder-decoder to convert color values between external and internal representations.

Parameters:
  • external_data_range (dict) – Dictionary specifying the data range for each channel in the external representation.

  • internal_data_range (dict) – Dictionary specifying the data range for each channel in the internal representation.

  • name (str) – The name of the color space.

Raises:

ValueError – If the keys of external_data_range and internal_data_range do not match.

pycolorbar.colors.colors_io.check_valid_external_data_range(colors, color_space, strict=False)[source][source]#

Check if the color values are within the external data range for each channel.

Raises an informative ValueError if a channel does not comply with the data range. If ‘strict’ is True, it ensures that not all values are within the internal data range.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

  • strict (bool, optional) – If True, performs a strict check to ensure that the values are within the external data range and not within the internal data range. Default is False.

Raises:

ValueError – If any channel values are not within the external data range or, if ‘strict’ is True, that not all channel values are also within the internal data range.

pycolorbar.colors.colors_io.check_valid_internal_data_range(colors, color_space)[source][source]#

Check if the color values are within the internal data range for the specified color space.

Raises an informative ValueError if a channel does not comply with the data range.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

Raises:

ValueError – If any channel values are not within the internal data range.

pycolorbar.colors.colors_io.decode_colors(colors, color_space)[source][source]#

Decode colors from external to internal representation for the specified color space.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

Returns:

Decoded color values in internal representation.

Return type:

numpy.ndarray

pycolorbar.colors.colors_io.encode_colors(colors, color_space)[source][source]#

Encode colors from internal to external representation for the specified color space.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

Returns:

Encoded color values in external representation.

Return type:

numpy.ndarray

pycolorbar.colors.colors_io.get_color_space_class(color_space)[source][source]#

Retrieve the class associated with the specified color space.

Parameters:

color_space (str) – The name of the color space. Valid color spaces are ‘RGB’, ‘RGBA’, ‘HSV’, ‘LCH’, ‘HCL’, ‘CIELUV’, ‘CIELAB’, ‘CIEXYZ’, ‘CMYK’.

Returns:

The class corresponding to the specified color space.

Return type:

class

pycolorbar.colors.colors_io.is_within_external_data_range(colors, color_space, strict=False)[source][source]#

Check if the color values are within the external data range for the specified color space.

Optionally, perform a strict check to ensure that not all values are also within the internal data range.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

  • strict (bool, optional) – If True, performs a check to ensure that not all values are also within the internal data range. Default is False.

Returns:

True if all channel values are within the external data range (and, if strict is True, not within the internal data range), False otherwise.

Return type:

bool

pycolorbar.colors.colors_io.is_within_internal_data_range(colors, color_space)[source][source]#

Check if the color values are within the internal data range for the specified color space.

Parameters:
  • colors (numpy.ndarray) – 2D array where each column represents a channel in the color space.

  • color_space (str) – The name of the color space.

Returns:

True if all channel values are within the internal data range, False otherwise.

Return type:

bool

Module contents#