Skip to main content

Extra, human-relevant, colour spaces derived from RGB.

Project description

PyPI GitHub GitHub issues GitHub Workflow Status

colorsysX

🎨👁️ Extra, human-relevant, colour spaces derived from RGB

This package extends the standard Python library's colorsys module with a few additional, useful, colour spaces. The models of colour provided here are simple, but relevant to human vision and the perceived lightness of different colour hues.

Colour models

  • YUV (specifically, YPbPr): a luma and colour difference model.
  • HCY: a cylindrical hue, relative chroma, and luma model.
  • GLHS: a generalized lightness/hue/saturation model.

YUV has a perceptually relevant lightness term. It can preserve absolute chroma when manipulating luma.

HCY is intuitive to use, and its lightness term is the same as YUV's. It's particularly useful when manipulating colours to meet WCAG 2.2 or draft 3.0 WCAG contrast criteria.

GLHS is a generalization of the cylindrical coordinate spaces provided in colorsysx and colorsys. It can be parameterised to provide any of the other similar models.

For developers

ColorsysX is library code, with no bundled scripts. Other projects are free to depend on it in the normal way.

Installation

To install the latest version from PyPI, for example into your current Python virtual environment:

pip install colorsysx

Interface conventions

from colorsysx import rgb_to_hcy, hcy_to_rgb

h, c, y = rgb_to_hcy(0.5, 0.7, 0.93)
r, g, b = hcy_to_rgb(h, c, y)

The conversion functions are named like the builtin colorsys module's functions, and share a very similar interface. For each colour system ABC, this package provides two functions:

rgb_to_abc() → a, b, c
abc_to_rgb() → r, g, b

All inputs and outputs are tuples of 3 floats in the range [0.0, 1.0]. Unlike colorsysx, the functions accept optional weighting parameters, which can be used to tune the colour model being used.

Testing and developing

ColorsysX is developed on GitHub as achadwick/python-colorsysx. Please report bugs via the issue tracker there.

ColorsysX uses tox to run tests and manage utility Python environments. Examples:

# Run all standard tests in parallel on all available Pythons
tox -p

# Run the system version of Python interactively in a venv with
# colorsysx available.
tox -e py python

The build system is flit, and the project is PEP 621 and PEP 517 compliant.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colorsysx-0.2.tar.gz (12.8 kB view hashes)

Uploaded Source

Built Distribution

colorsysx-0.2-py3-none-any.whl (11.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page