Initial Commit
This commit is contained in:
51
node_modules/color-space/yiq.js
generated
vendored
Normal file
51
node_modules/color-space/yiq.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* YIQ https://en.wikipedia.org/?title=YIQ
|
||||
*
|
||||
* @module color-space/yiq
|
||||
*/
|
||||
import rgb from './rgb.js';
|
||||
|
||||
var yiq = ({
|
||||
name: 'yiq',
|
||||
min: [0, -0.5957, -0.5226],
|
||||
max: [1, 0.5957, 0.5226],
|
||||
channel: ['Y', 'I', 'Q'],
|
||||
alias: ['YIQ']
|
||||
});
|
||||
|
||||
yiq.rgb = function (yiq) {
|
||||
var y = yiq[0],
|
||||
i = yiq[1],
|
||||
q = yiq[2],
|
||||
r, g, b;
|
||||
|
||||
r = (y * 1) + (i * 0.956) + (q * 0.621);
|
||||
g = (y * 1) + (i * -0.272) + (q * -0.647);
|
||||
b = (y * 1) + (i * -1.108) + (q * 1.705);
|
||||
|
||||
r = Math.min(Math.max(0, r), 1);
|
||||
g = Math.min(Math.max(0, g), 1);
|
||||
b = Math.min(Math.max(0, b), 1);
|
||||
|
||||
return [r * 255, g * 255, b * 255];
|
||||
};
|
||||
|
||||
|
||||
//extend rgb
|
||||
rgb.yiq = function (rgb) {
|
||||
var r = rgb[0] / 255,
|
||||
g = rgb[1] / 255,
|
||||
b = rgb[2] / 255;
|
||||
|
||||
|
||||
var y = (r * 0.299) + (g * 0.587) + (b * 0.114);
|
||||
var i = 0, q = 0;
|
||||
if (r !== g || g !== b) {
|
||||
i = (r * 0.596) + (g * -0.275) + (b * -0.321);
|
||||
q = (r * 0.212) + (g * -0.528) + (b * 0.311);
|
||||
}
|
||||
return [y, i, q];
|
||||
};
|
||||
|
||||
|
||||
export default yiq;
|
||||
Reference in New Issue
Block a user