thx.color 0.19.1

Library for color manipulation. Contains definitions for Lab, LCh, Cmy(K), CubeHelix, Grey, Hcl, Hsl(A), Hsv(A), Rgb(A), Xyz and Yxy as well as alpha versions of the sames and color parsing.

Released 2016-12-23.

To install, run:

haxelib install thx.color 0.19.1

See using Haxelib in Haxelib documentation for more information.

Maintainerfponticelli
Websitehttps://github.com/fponticelli/thx.color
Current version0.19.1
StatisticsInstalled 392 times
LicenseMIT
Tags color, cross, thx

README.md

thx.color

Build Status

Color library for Haxe. Supports the following color spaces:

  • Lab (AKA Lab)
  • LCh (AKA HCL)
  • Luv (or LUV)
  • Cmy
  • Cmyk
  • CubeHelix
  • Grey
  • Hsl(a)
  • Hsv(a) (AKA HSB)
  • HunterLab
  • Rgb(a)
  • Rgbx(a) (an high resolution version of RGB)
  • Temperature
  • Xyz
  • Yuv
  • Yxy

With conversion from/to any color space (notice that you can lose some information in the conversion).

intro

API uses abstracts to make it easy to create colors from strings and numbers.

    var rgb : Rgb = "#cf8700";
    trace(rgb.green);

Some examples from Demo.

Hsl Rainbow

var left  : Hsl = 'hsl(0,100%,0%)',
    right : Hsl = 'hsl(359.99,100%,0%)';
return function(x : Float, y : Float) : Rgb {
  return left.interpolate(right, x).lighter(y);
};

Alt text

Hsv Interpolation

var left  : Hsv = 'hsv(160deg,100%,63%)',
    right : Hsv = 'hsv(345deg,88%,77%)';
return function(t : Float) : Rgb
    return (left : Hsv).interpolate(right, t);

Alt text

Lighter Rgb

var left : Rgb = '#0000ff';
return left.lighter;

Alt text

Named Colors Table

var columns = 5,
    colors  = Color.names.keys().toArray().filter(function(n) return n.indexOf(' ') < 0),
    cellw   = w / columns,
    cellh   = h / Math.ceil(colors.length / columns);
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = '${Math.round(cellh*0.4)}px Verdana, sans-serif';
colors.mapi(function(name, i) {
    var col   = i % columns,
        row   = Math.floor(i / columns),
        color = Color.names.get(name);

    ctx.fillStyle = color.toString();
    ctx.fillRect(col * cellw, row * cellh, cellw, cellh);

    ctx.fillStyle = color.toRgbx()
        .toPerceivedGrey()
        .contrast()
        .toRgb().toString();
    ctx.fillText(
        name,
        Math.round(col * cellw + cellw / 2) + 0.5,
        Math.round(row * cellh + cellh / 2) + 0.5,
        cellw);
});
color table

To run Demo, you need nodejs and the Canvas library (npm install canvas);

Note: API might still change before version 1.

install

From the command line just type:

haxelib install thx.color

To use the dev version do:

haxelib git thx.color https://github.com/fponticelli/thx.color.git