cl-colors
cl-colors copied to clipboard
Simple color library for Common Lisp
IMPORTANT This library is [[https://tpapp.github.io/post/orphaned-lisp-libraries/][unsupported]].
- cl-colors: a simple color library for Common Lisp
This is a very simple color library for Common Lisp, providing
- Types for representing colors in HSV and RGB spaces.
- Simple conversion functions between the above types (and also hexadecimal representation for RGB).
- Some predefined colors (currently X11 color names -- of course the library does not depend on X11).
** Examples
#+BEGIN_SRC lisp (let ((color1 (hsv 107 62/100 52/100)) ; greenish (color2 (rgb 14/15 26/51 14/15)) ; = violet from X11 (color3 (as-rgb "ff9e00"))) ; from hexadecimal (list ; (as-rgb color1) ; converting to RGB (rgb-combination color1 +blue+ 0.4) ; HSV autoconverted to RGB (hsv-combination color2 +blue+ 0.4) ; RGB autoconverted to HSV color3)) #+END_SRC evaluates to #+BEGIN_EXAMPLE '(#S(RGB :RED 20059/75000 :GREEN 13/25 :BLUE 247/1250) #S(RGB :RED 0.160472 :GREEN 0.312 :BLUE 0.51856) ; observe float contagion #S(HSV :HUE 60.0 :SATURATION 0.6722689 :VALUE 0.96000004) #S(RGB :RED 1 :GREEN 158/255 :BLUE 0)) #+END_EXAMPLE
Observe the float contagion: =cl-colors= functions don't care about the type of the numbers as long as they are a subtype of =real= and within the right range.
** Documentation
This library is so simple that it does not need a lot of documentation --- just look at the docsstrings in =colors.lisp=.
** Regeneration of the X11 color names
Normally you should not need to do this, the sources already contain the autogenerated file =colornames.lisp=. However, if for some reason you need to regenerate this, you can use =make=. Even though the library itself does not depend on X11, regenerating this file will require the appropriate file in X11.
** Bugs and issues
Please report them on [[https://github.com/tpapp/cl-colors/issues][Github]].