Giter Site home page Giter Site logo

cl-colors's Introduction

IMPORTANT This library is unsupported.

cl-colors: a simple color library for Common Lisp

This is a very simple color library for Common Lisp, providing

  1. Types for representing colors in HSV and RGB spaces.
  2. Simple conversion functions between the above types (and also hexadecimal representation for RGB).
  3. Some predefined colors (currently X11 color names – of course the library does not depend on X11).

Examples

(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))

evaluates to

'(#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))

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 Github.

cl-colors's People

Contributors

boqs avatar ferada avatar rpav avatar tpapp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cl-colors's Issues

Symbols won't be exported on ABCL

Although this may be a bug of ABCL, some symbols (ex. RGB-RED) won't be exported though they are specified in :export of defpackage.

CL-USER(1): (ql:quickload :cl-colors)
To load "cl-colors":
  Load 1 ASDF system:
    cl-colors
; Loading "cl-colors"
[package cl-colors]
......
(:CL-COLORS)
CL-USER(2): (apropos "rgb-red")
CL-COLORS::RGB-RED (fbound)                 ;; <- not exported

It worked well if I removed the part unexporting symbols.

diff --git a/package.lisp b/package.lisp
index b559140..af16901 100644
--- a/package.lisp
+++ b/package.lisp
@@ -2,6 +2,7 @@

 (in-package #:common-lisp-user)

+#-abcl
 (eval-when (:compile-toplevel :load-toplevel :execute)
   ;; this is needed because the color names in the autogenerated file are
   ;; exported manually and some implementations (eg SBCL) complain about the

No longer exporting color constants?

The older version of cl-colors exported things like cl-colors:+black+ via define-rgb-color. It does not seem like the new version does that any more. This breaks a number of projects which reference cl-colors:+black+ and other stuff. Is this package change intentional or accidental?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.