Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reiniiriarios/chromaticity-color-utilities
:art: Color utilities for Node.js. Conversion, modification, and color schemes of: RGB (at any bit depth), HSV, HSL, HSI, HSP, CYMK, YIQ, XYZ, xyY, L*a*b*, L*u*v*, Y'PbPr, Y'CbCr, and more.
https://github.com/reiniiriarios/chromaticity-color-utilities
bit-depth chroma cie-xyz cielab cieluv ciexyz color-conversion color-edit color-schemes color-spaces hue luma ntsc-color rgb saturation standard-illuminants video-color ycbcr yiq ypbpr
Last synced: about 1 month ago
JSON representation
:art: Color utilities for Node.js. Conversion, modification, and color schemes of: RGB (at any bit depth), HSV, HSL, HSI, HSP, CYMK, YIQ, XYZ, xyY, L*a*b*, L*u*v*, Y'PbPr, Y'CbCr, and more.
- Host: GitHub
- URL: https://github.com/reiniiriarios/chromaticity-color-utilities
- Owner: reiniiriarios
- License: gpl-3.0
- Created: 2021-04-05T00:55:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-21T21:19:25.000Z (almost 2 years ago)
- Last Synced: 2024-11-07T20:23:31.301Z (about 2 months ago)
- Topics: bit-depth, chroma, cie-xyz, cielab, cieluv, ciexyz, color-conversion, color-edit, color-schemes, color-spaces, hue, luma, ntsc-color, rgb, saturation, standard-illuminants, video-color, ycbcr, yiq, ypbpr
- Language: TypeScript
- Homepage: https://reiniiriarios.github.io/chromaticity-color-utilities/
- Size: 3.98 MB
- Stars: 15
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# chromaticity-color-utilities
![downloads](https://img.shields.io/npm/dt/chromaticity-color-utilities)
![types: Typescript](https://img.shields.io/badge/types-Typescript-blue)
![license: GPL-3.0-or-later](https://img.shields.io/badge/license-GPL--3.0--or--later-blueviolet)
[![npm version](https://img.shields.io/npm/v/chromaticity-color-utilities)](https://www.npmjs.com/package/chromaticity-color-utilities)
[![code style: prettier](https://img.shields.io/badge/code%20style-prettier-ff69b4)](https://github.com/prettier/prettier#readme)Color utilities for Node.js.
Conversion, modification, and color schemes of: RGB (at any bit depth), HSV, HSL, HSI, HSP, CYMK, YIQ, XYZ, xyY, L\*a\*b\*, L\*u\*v\*, Y'PbPr, Y'CbCr, and more.
## Install
`npm i chromaticity-color-utilities`
## Documentation
📖 Please [**read the full Documentation**](https://reiniiriarios.github.io/chromaticity-color-utilities) for details on each method as well as numerous usage examples.
## Example Usage
### TypeScript
```ts
import Color from 'chromaticity-color-utilities'const color1: Color.hsv = Color.from('rgb', [255, 128, 0]).to('hsv')
const scheme1: Color.lab[] = Color.from('hex', 0x9a237f)
.modify('desaturate', { amount: 0.2 })
.to('lab', {
colorSpace: 'AdobeRGB',
referenceWhite: 'D50',
})
.scheme('gradient', {
with: Color.from('hsl', [300, 50, 45]),
colors: 5,
})const yourMethod = (rgb: Color.rgb): Color.hsv => {
// do things
let hsv: Color.hsv = rgb.to('hsv')
// do things
return hsv
}
```### JavaScript
```js
const Color = require('chromaticity-color-utilities')const color1 = Color.from('rgb', [255, 128, 0]).to('hsv')
const scheme1 = Color.from('hex', 0x9a237f)
.modify('desaturate', { amount: 0.2 })
.to('lab', {
colorSpace: 'AdobeRGB',
referenceWhite: 'D50',
})
.scheme('gradient', {
with: Color.from('hsl', [300, 50, 45]),
colors: 5,
})
```### TypeScript (deprecated type import method)
`colorTypes` is still supported, but deprecated and will be removed in a future release.
```ts
import Color, { colorTypes } from 'chromaticity-color-utilities'const color1: colorTypes.hsv = Color.from('rgb', [255, 128, 0]).to('hsv')
```## Known Issues
- YCbCr validates only with a high tolerance. Not sure if floating point issue.
## Compiling from Source
```
git clone https://github.com/reiniiriarios/chromaticity-color-utilities.git
cd chromaticity-color-utilities
npm ci
tsc
```(Typescript not added as dependency, install with `npm i -g typescript`.)
## To Do List
- LCHab - basic support added
- LCHuv
- HSLuv
- HPLuv
- YUV
- Gamma adjustment modification
- Auto-gamma adjustment and conversion for rec709, rec2020, and jpeg to/from ypbpr
- note to self: rec709 does gamma conversion before while rec2020 does gamma conversion after when converting to ypbpr (I think)
- Need way more comments and better variable names
- Write more documentation wrt mathematics.
- Integrate my references better. :)
- For RGBA to CMYK, mix alpha with white
- Support for 8-digit hex values (RRGGBBAA)
- Diagrams in docs