A little wrapper over LittleCMS utilities.
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
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]));
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 |
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)
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.