color-classifier-ts

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

Usage no npm install needed!

<script type="module">
  import colorClassifierTs from 'https://cdn.skypack.dev/color-classifier-ts';
</script>

README

color-classifier.js

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

Forked from https://github.com/tsuyoshiwada/color-classifier and turned into Typescript project

INSTALL

$ npm install color-classifier-ts --save

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

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"
//     ]
//   }
// ]

LICENCE

Released under the MIT Licence

ORIGINAL AUTHOR

tsuyoshiwada