Classify the color along the reference color. using algorithm the CIEDE2000, RGB, HSV.
JavaScript CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

color-classifier.js

Build Status npm version David License

Classify the color along the reference color. using algorithm the CIEDE2000, RGB, HSV.

Playground

Playground Screenshot

Playground

INSTALL

$ npm install color-classifier --save

or

Download the color-classifier.min.js.

USAGE

The following is the basic usage.

import ColorClassifier from "color-classifier"

const palette = ["#fff", "#000"];
const colorClassifier = new ColorClassifier(palette);
const color = colorClassifier.classify("#fefefe");

console.log(color); // {r: 255, g: 255, b: 255}

The type of pallet and algorithms have been some available.

import ColorClassifier, { Palette, AlgorithmTypes } from "color-classifier"

const colorClassifier = new ColorClassifier(Palette.W3C, AlgorithmTypes.HSV);
const color = colorClassifier.classify("#fefefe");

console.log(color); // {r: 255, g: 255, b: 255}

The available values are as follows.

Palette

The following is the palette list of preset.

Palette.W3C

hex color
#000000
#808080
#c0c0c0
#ffffff
#800000
#ff0000
#008000
#00ff00
#808000
#ffff00
#008080
#00ffff
#000080
#0000ff
#800080
#ff00ff

Palette.RAINBOW

hex color
#000000
#808080
#ffffff
#ff0000
#ffa500
#ffff00
#008000
#00ffff
#0000ff
#800080

AlgorithmTypes

The difference algorithm of color is possible some selection.
Please try in Playground for the difference of each algorithm.

value description
AlgorithmTypes.CIEDE2000 Using the CIE Delta E 2000 Color-Difference algorithm (CIEDE2000).
The CIEDE2000 color-difference formula,
Color difference - Wikipedia, the free encyclopedia
AlgorithmTypes.HSV Using the HSV color space.
HSL and HSV - Wikipedia, the free encyclopedia
AlgorithmTypes.RGB Using the RGB color space.
RGB color model - Wikipedia, the free encyclopedia

API

new ColorClassifier(palette = Palette.W3C, algorithmType = AlgorithmTypes.CIEDE2000)

palette: {Array}
algorithmType: {String}

Palette is specify array in RGB object or HEX string.

HEX String:

const palette = ["#fff", "#000"];
const colorClassifier = new ColorClassifier(palette);

RGB Object:

const palette = [
  {r: 255, g: 255, b: 255},
  {r: 0,   g: 0,   b: 0}
];
const colorClassifier = new ColorClassifier(palette);

classify(color, format = "rgb")

color: {Object || String}
format: {String} ("rgb", "hex", "hsv")

Classifies the specified color along the palette.

const color1 = {r: 255, g: 255, b: 255};

console.log(colorClassifier.classify(color1, "rgb")); //{r: 255, g: 255, b: 255}
console.log(colorClassifier.classify(color1, "hex")); //#ffffff
console.log(colorClassifier.classify(color1, "hsv")); //{h: 0, s: 0, v: 100}


const color2 = "#fff";

console.log(colorClassifier.classify(color2, "rgb")); //{r: 255, g: 255, b: 255}
console.log(colorClassifier.classify(color2, "hex")); //#ffffff
console.log(colorClassifier.classify(color2, "hsv")); //{h: 0, s: 0, v: 100}

classifyFromArray(colors, format = "rgb")

colors: {Array}
format: {String} ("rgb, "hex", "hsv")

Classifies the specified array of colors along the palette.

const colors = ["#fefefe", "#fafafa", "#010101", "#020202"];
const results = colorClassifier.classifyFromArray(colors, "hex");

console.log(results);
// [
//   {
//     palette: "#ffffff",
//     colors: [
//       "#fefefe",
//       "#fafafa"
//     ]
//   },
//   {
//     palette: "#000000",
//     colors: [
//       "#010101",
//       "#020202"
//     ]
//   }
// ]

More APIs

  • setPalette(palette)
  • getPalette()
  • setAlgorithmType(algorithmType)
  • getAlgorithmType()

LICENCE

Released under the MIT Licence

AUTHOR

tsuyoshiwada

DEVELOPMENT

Initialization of the project.

$ cd /your/project/dir
$ git clone https://github.com/tsuyoshiwada/color-classifier.git

Install some dependencies.

$ npm install

Start the development. You can access to the http://localhost:3000/.

$ npm start

Run lint and testing.

$ npm test

Generates build file.

$ npm run build

Bugs, feature requests and comments are more than welcome in the issues