function rgbToHsv(rgbArray) {
var r = rgbArray[0];
var g = rgbArray[1];
var b = rgbArray[2];
var a = 1;
if (rgbArray.length > 3) {
a = rgbArray[3];
}
var max = Math.max(r, g, b),
min = Math.min(r, g, b);
var h, s, v = max;
var d = max - min;
s = max == 0 ? 0 : d / max;
if (max == min) {
h = 0; // achromatic
} else {
switch (max) {
case r:
h = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / d + 2;
break;
case b:
h = (r - g) / d + 4;
break;
}
h /= 6;
}
return [h, s, v, a];
}
function hsvToRgb(hsvArray) {
var h = hsvArray[0];
var s = hsvArray[1];
var v = hsvArray[2];
var a = 1;
if (hsvArray.length > 3) {
a = hsvArray[3];
}
var r, g, b;
var i = Math.floor(h * 6);
var f = h * 6 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0:
r = v, g = t, b = p;
break;
case 1:
r = q, g = v, b = p;
break;
case 2:
r = p, g = v, b = t;
break;
case 3:
r = p, g = q, b = v;
break;
case 4:
r = t, g = p, b = v;
break;
case 5:
r = v, g = p, b = q;
break;
}
return [r, g, b, a];
}
/* https://github.com/dyygtfx/EveryDayCode/issues/68 */
__________2017年11月4日__________
function hsvToRgb(hsvArray){var h=hsvArray[0];var s=hsvArray[1];var v=hsvArray[2];var a=1;if(hsvArray.length>3){a=hsvArray[3]}var r,g,b;var i=Math.floor(h*6);var f=h*6-i;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break;}return [r,g,b,a];}/* https://github.com/dyygtfx/EveryDayCode/issues/68 */
function rgbToHsv(rgbArray){var r=rgbArray[0];var g=rgbArray[1];var b=rgbArray[2];var a=1;if(rgbArray.length>3){a=rgbArray[3]}var max=Math.max(r,g,b),min=Math.min(r,g,b);var h,s,v=max;var d=max-min;s=max==0?0:d/max;if(max==min){h=0}else{switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break;}h/=6;}return [h,s,v,a];}
© leizingjiu | Powered by LOFTER