colored
2024-10-12
System for colour representation, conversion, and operation.
Upstream URL
Author
Yukari Hafner <shinmera@tymoon.eu>
Maintainer
Yukari Hafner <shinmera@tymoon.eu>
License
zlib
## About Colored
This is a library for representing and mapping colours between their various spaces.
It currently does not support ICC colour space conversions from colour profile files. This is however planned for a future release. If there are other mappings missing that you need, please file an issue.
## How To
For the purposes of this tutorial we assume the package ``org.shirakumo.alloy.colored`` is nicknamed ``colored``.
Primarily, colours are constructed using ``color`` or one of the specific colour space constructors (``rgb``, ``srgb``, ``hsv``, ``hsl``, ``hsi``, ``cmyk``, ``lab``, ``xyz``).
You can also de/serialise colours from direct integer format using the ``encode`` and ``decode`` functions.
Colours are immutable. As such they can and will be cached wherever possible. Nevertheless, it is not guaranteed that two colours with the same channel values will be ``eq``. To compare colours, use ``color=`` and ``color-equal``.
::common lisp
(colored:color= (colored:color 1 0 0) (colored:decode #xFF0000)) ; => T
::
In order to convert colours between different colour spaces, use the ``convert`` function.
## Constants
Colored offers a database of standard colours with their associated colour values. You can find these in the ``org.shirakumo.alloy.colored.colors`` package. You can also define new colours using ``define-color``.