Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Returns given RGB color as an HSV color in 23bit INT format
- // usage: /rgbtohsv R G B [ action ]
- rgbtohsv = [
- local r g b mn d h s v
- r = (divf $arg1 0xFF)
- g = (divf $arg2 0xFF)
- b = (divf $arg3 0xFF)
- v = (maxf $r $g $b)
- mn = (minf $r $g $b)
- if (=f $mn $v) [
- d = 0
- h = 0
- s = 0
- ] [
- d = (-f $v $mn)
- s = (divf $d $v)
- h = (casef $v $r [
- floor (*f 60 (modf (divf (-f $g $b) $d) 6))
- ] $g [
- *f 60 (+f (divf (-f $b $r) $d) 2)
- ] $b [
- *f 60 (+f (divf (-f $r $g) $d) 4)
- ])
- ]
- if (>= $numargs 4) [ doargs $arg4 ] [
- | $v (<< $s 7) (<< $h 16)
- ]
- ]
Advertisement
Add Comment
Please, Sign In to add comment