Last active
June 10, 2016 20:50
-
-
Save gaogao-9/13f6a5b44492bfda20b1d15ce7f0b2c3 to your computer and use it in GitHub Desktop.
相互変換
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//RGBの情報から、HSVの情報を得る汎用メソッド | |
//「http://p.tl/YDI3」のJavaソースコードをJSに移植しただけです。 | |
function GetHSVColorByRGBColor(rgb){ | |
var hue,saturation,value; | |
var max = Math.max(rgb.r,rgb.g,rgb.b); | |
var min = Math.min(rgb.r,rgb.g,rgb.b); | |
//hue | |
if(max == min){ | |
hue = 0; | |
} | |
else if(max == rgb.r){ | |
hue = (((60 * (rgb.g - rgb.b) / (max - min) + 360)|0) % 360)|0; | |
} | |
else if(max == rgb.g){ | |
hue = ((60 * (rgb.b - rgb.r) / (max - min)) + 120)|0; | |
} | |
else if(max == rgb.b){ | |
hue = ((60 * (rgb.r - rgb.g) / (max - min)) + 240)|0; | |
} | |
//saturation | |
if(max == 0){ | |
saturation = 0; | |
} | |
else{ | |
saturation = (255 * ((max - min) / max))|0; | |
} | |
//value | |
value = max; | |
return { | |
h : hue, | |
s : saturation, | |
v : value | |
}; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//HSVの情報から、RGBの情報を得る汎用メソッド | |
//「http://p.tl/YDI3」のJavaソースコードをJSに移植しただけです。 | |
function GetRGBColorByHSVColor(hsv){ | |
var red,green,blue; | |
var i,f,p,q,t; | |
i = (hsv.h/60|0) % 6; | |
f = (hsv.h/60) - (hsv.h/60|0); | |
p = (hsv.v*(1-(hsv.s/255))+0.5)|0; | |
q = (hsv.v*(1-(hsv.s/255)*f)+0.5)|0; | |
t = (hsv.v*(1-(hsv.s/255)*(1-f))+0.5)|0; | |
//このゴリ押し感、すごく闇臭いっ | |
//こういう変換系の処理は、とっても低レイヤーで泥臭い作業ですね(しろめ) | |
switch(i){ | |
case 0 : | |
red = hsv.v; | |
green = t; | |
blue = p; | |
break; | |
case 1 : | |
red = q; | |
green = hsv.v; | |
blue = p; | |
break; | |
case 2 : | |
red = p; | |
green = hsv.v; | |
blue = t; | |
break; | |
case 3 : | |
red = p; | |
green = q; | |
blue = hsv.v; | |
break; | |
case 4 : | |
red = t; | |
green = p; | |
blue = hsv.v; | |
break; | |
case 5 : | |
red = hsv.v; | |
green = p; | |
blue = q; | |
break; | |
} | |
return { | |
r : red, | |
g : green, | |
b : blue | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment