Skip to content

danburzo/node-lcms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-lcms

A little wrapper over LittleCMS utilities.

Installation

You need to have LittleCMS installed. You can build it from source by following these steps (which should work on Unix-based systems, including macOS):

git clone git@github.com:mm2/Little-CMS.git
cd Little-CMS
./configure
make
make check
make install

You can now use node-lcms in your project by installing it from npm into your project:

# using npm
npm install node-lcms

# using yarn
yarn add node-lcms

API reference

convert(options = {})function(color_arr)

This is a wrapper over the Little CMS's transicc utility, which converts colors based on ICC profiles.

let { convert } = require('node-lcms');

let conv = convert({
	profile_out: '/path/to/some-profile.icc'
});

console.log(conv([255, 0, 0]));

Options

intent:

Value Description
0 Perceptual
1 Relative colorimetric
2 Saturation
3 Absolute colorimetric
10 Perceptual preserving black ink
11 Relative colorimetric preserving black ink
12 Saturation preserving black ink
13 Perceptual preserving black plane
14 Relative colorimetric preserving black plane
15 Saturation preserving black plane

Built-in profiles:

Profile Description
*Lab2 D50-based v2 CIELab
*Lab4 D50-based v4 CIELab
*Lab D50-based v4 CIELab
*XYZ CIE XYZ (PCS)
*sRGB sRGB color space
*Gray22 Monochrome of Gamma 2.2
*Gray30 Monochrome of Gamma 3.0
*null Monochrome black for all input
*Lin2222 CMYK linearization of gamma 2.2 on each channel

Where to get more ICC profiles?

If you have Adobe products installed, you can find a bunch of common ICC profiles on your computer at /Library/Application Support/Adobe/Color/Profiles/Recommended (on macOS)

Acknowledgements

This project is indebted to James Pederson's node-transicc for instructions on how to install LittleCMS from source and how to interface with it in Node.js.

See also