[d24f17c] | 1 | # color-convert
|
---|
| 2 |
|
---|
| 3 | [](https://travis-ci.org/Qix-/color-convert)
|
---|
| 4 |
|
---|
| 5 | Color-convert is a color conversion library for JavaScript and node.
|
---|
| 6 | It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest):
|
---|
| 7 |
|
---|
| 8 | ```js
|
---|
| 9 | var convert = require('color-convert');
|
---|
| 10 |
|
---|
| 11 | convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
|
---|
| 12 | convert.keyword.rgb('blue'); // [0, 0, 255]
|
---|
| 13 |
|
---|
| 14 | var rgbChannels = convert.rgb.channels; // 3
|
---|
| 15 | var cmykChannels = convert.cmyk.channels; // 4
|
---|
| 16 | var ansiChannels = convert.ansi16.channels; // 1
|
---|
| 17 | ```
|
---|
| 18 |
|
---|
| 19 | # Install
|
---|
| 20 |
|
---|
| 21 | ```console
|
---|
| 22 | $ npm install color-convert
|
---|
| 23 | ```
|
---|
| 24 |
|
---|
| 25 | # API
|
---|
| 26 |
|
---|
| 27 | Simply get the property of the _from_ and _to_ conversion that you're looking for.
|
---|
| 28 |
|
---|
| 29 | All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function.
|
---|
| 30 |
|
---|
| 31 | All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha).
|
---|
| 32 |
|
---|
| 33 | ```js
|
---|
| 34 | var convert = require('color-convert');
|
---|
| 35 |
|
---|
| 36 | // Hex to LAB
|
---|
| 37 | convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]
|
---|
| 38 | convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]
|
---|
| 39 |
|
---|
| 40 | // RGB to CMYK
|
---|
| 41 | convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ]
|
---|
| 42 | convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ]
|
---|
| 43 | ```
|
---|
| 44 |
|
---|
| 45 | ### Arrays
|
---|
| 46 | All functions that accept multiple arguments also support passing an array.
|
---|
| 47 |
|
---|
| 48 | Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.)
|
---|
| 49 |
|
---|
| 50 | ```js
|
---|
| 51 | var convert = require('color-convert');
|
---|
| 52 |
|
---|
| 53 | convert.rgb.hex(123, 45, 67); // '7B2D43'
|
---|
| 54 | convert.rgb.hex([123, 45, 67]); // '7B2D43'
|
---|
| 55 | ```
|
---|
| 56 |
|
---|
| 57 | ## Routing
|
---|
| 58 |
|
---|
| 59 | Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex).
|
---|
| 60 |
|
---|
| 61 | Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js).
|
---|
| 62 |
|
---|
| 63 | # Contribute
|
---|
| 64 |
|
---|
| 65 | If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request.
|
---|
| 66 |
|
---|
| 67 | # License
|
---|
| 68 | Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE).
|
---|