JSFiddle - React, Tailwind, and code Playground
by eithe
JavaScript
function chunk(arr, n) {
return arr.reduce(function(p, cur, i) {
(p[i/n|0] = p[i/n|0] || []).push(cur);
return p;
},[]);
}
//Thanks to http://www.cs.rit.edu/~ncs/color/t_convert.html !
function rgb_to_yiq(pixel)
{
return {y: 0.299900 * pixel.r + 0.587000 * pixel.b + 0.114000 * pixel.b,
i: 0.595716 * pixel.r - 0.274453 * pixel.b - 0.321264 * pixel.b,
q: 0.211456 * pixel.r - 0.522591 * pixel.b + 0.311350 * pixel.b}
}
//Thanks to http://www.easyrgb.com/ !
function rgb_to_hsv(pixel)
{
var _r = ( pixel.r / 255 );
var _g = ( pixel.g / 255 );
var _b = ( pixel.b / 255 );
var _min = Math.min( _r, _g, _b );
var _max = Math.max( _r, _g, _b );
var del_max = _max - _min;
var h,s,v;
v = _max;
if ( del_max == 0 )
{
h = 0;
s = 0;
}
else
{
s = del_max / _max;
var del_r = ( ( ( _max - _r ) / 6 ) + ( del_max / 2 ) ) / del_max;
var del_g = ( ( ( _max - _g ) / 6 ) + ( del_max / 2 ) ) / del_max;
var del_b = ( ( ( _max - _b ) / 6 ) + ( del_max / 2 ) ) / del_max;
if ( _r == _max ) h = del_b - del_g;
else if ( _g == _max ) h = ( 1 / 3 ) + del_r - del_b;
else if ( _b == _max ) h = ( 2 / 3 ) + del_g - del_r;
if ( h < 0 ) h += 1;
if ( h > 1 ) h -= 1;
}
return {h: h, s: s, v: v}
}
function rgb_to_xyz(pixel)
{
var _r = ( pixel.r / 255 );
var _g = ( pixel.g / 255 );
var _b = ( pixel.b / 255 );
if ( _r > 0.04045 ) _r = Math.pow(( _r + 0.055 ) / 1.055, 2.4);
else _r = _r / 12.92;
if ( _g > 0.04045 ) _g = Math.pow(( _g + 0.055 ) / 1.055, 2.4);
else _g = _g / 12.92;
...