chromaticity-color-utilities
    TypeScript icon, indicating that this package has built-in type declarations

    0.14.0-alpha • Public • Published

    chromaticity-color-utilities

    downloads types: Typescript license: GPL-3.0-or-later npm version code style: prettier

    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 for details on each method as well as numerous usage examples.

    Example Usage

    TypeScript

    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

    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.

    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
    • 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

    Install

    npm i chromaticity-color-utilities

    DownloadsWeekly Downloads

    138

    Version

    0.14.0-alpha

    License

    GPL-3.0-or-later

    Unpacked Size

    363 kB

    Total Files

    28

    Last publish

    Collaborators

    • reiniiriarios