First Commit
This commit is contained in:
12
node_modules/culori/src/yiq/convertRgbToYiq.js
generated
vendored
Normal file
12
node_modules/culori/src/yiq/convertRgbToYiq.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
const convertRgbToYiq = ({ r, g, b, alpha }) => {
|
||||
const res = {
|
||||
mode: 'yiq',
|
||||
y: 0.29889531 * r + 0.58662247 * g + 0.11448223 * b,
|
||||
i: 0.59597799 * r - 0.2741761 * g - 0.32180189 * b,
|
||||
q: 0.21147017 * r - 0.52261711 * g + 0.31114694 * b
|
||||
};
|
||||
if (alpha !== undefined) res.alpha = alpha;
|
||||
return res;
|
||||
};
|
||||
|
||||
export default convertRgbToYiq;
|
12
node_modules/culori/src/yiq/convertYiqToRgb.js
generated
vendored
Normal file
12
node_modules/culori/src/yiq/convertYiqToRgb.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
const convertYiqToRgb = ({ y, i, q, alpha }) => {
|
||||
const res = {
|
||||
mode: 'rgb',
|
||||
r: y + 0.95608445 * i + 0.6208885 * q,
|
||||
g: y - 0.27137664 * i - 0.6486059 * q,
|
||||
b: y - 1.10561724 * i + 1.70250126 * q
|
||||
};
|
||||
if (alpha !== undefined) res.alpha = alpha;
|
||||
return res;
|
||||
};
|
||||
|
||||
export default convertYiqToRgb;
|
55
node_modules/culori/src/yiq/definition.js
generated
vendored
Normal file
55
node_modules/culori/src/yiq/definition.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
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;
|
Reference in New Issue
Block a user