23 lines
569 B
JavaScript
23 lines
569 B
JavaScript
/**
|
|
* Linear RGB space.
|
|
*
|
|
* @module color-space/lrgb
|
|
*/
|
|
import rgb from './rgb.js';
|
|
|
|
const lrgb = {
|
|
name: 'lrgb',
|
|
min: [0, 0, 0],
|
|
max: [1, 1, 1],
|
|
channel: ['red', 'green', 'blue']
|
|
};
|
|
|
|
lrgb.rgb = lrgb => lrgb.map(channel => ((channel /= 255) <= 0.0031308
|
|
? 12.92 * channel
|
|
: 1.055 * channel ** (1 / 2.4) - 0.055) * 255)
|
|
rgb.lrgb = rgb => rgb.map(c => (c / 255) <= 0.04045 ? (c / 255) / 12.92 : ((c / 255 + 0.055) / 1.055) ** 2.4);
|
|
|
|
// TODO: add xyz transform, see https://github.com/color-js/color.js/blob/main/src/spaces/srgb-linear.js
|
|
|
|
export default lrgb;
|