56 lines
1.0 KiB
JavaScript
56 lines
1.0 KiB
JavaScript
|
import convertRgbToYiq from './convertRgbToYiq.js';
|
||
|
import convertYiqToRgb from './convertYiqToRgb.js';
|
||
|
import { interpolatorLinear } from '../interpolate/linear.js';
|
||
|
import { fixupAlpha } from '../fixup/alpha.js';
|
||
|
|
||
|
/*
|
||
|
YIQ Color Space
|
||
|
|
||
|
References
|
||
|
----------
|
||
|
|
||
|
Wikipedia:
|
||
|
https://en.wikipedia.org/wiki/YIQ
|
||
|
|
||
|
"Measuring perceived color difference using YIQ NTSC
|
||
|
transmission color space in mobile applications"
|
||
|
|
||
|
by Yuriy Kotsarenko, Fernando Ramos in:
|
||
|
Programación Matemática y Software (2010)
|
||
|
|
||
|
Available at:
|
||
|
|
||
|
http://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf
|
||
|
*/
|
||
|
|
||
|
const definition = {
|
||
|
mode: 'yiq',
|
||
|
|
||
|
toMode: {
|
||
|
rgb: convertYiqToRgb
|
||
|
},
|
||
|
|
||
|
fromMode: {
|
||
|
rgb: convertRgbToYiq
|
||
|
},
|
||
|
|
||
|
channels: ['y', 'i', 'q', 'alpha'],
|
||
|
|
||
|
parse: ['--yiq'],
|
||
|
serialize: '--yiq',
|
||
|
|
||
|
ranges: {
|
||
|
i: [-0.595, 0.595],
|
||
|
q: [-0.522, 0.522]
|
||
|
},
|
||
|
|
||
|
interpolate: {
|
||
|
y: interpolatorLinear,
|
||
|
i: interpolatorLinear,
|
||
|
q: interpolatorLinear,
|
||
|
alpha: { use: interpolatorLinear, fixup: fixupAlpha }
|
||
|
}
|
||
|
};
|
||
|
|
||
|
export default definition;
|