Advertisement
RaZgRiZ

rgbtohsv

Aug 7th, 2014
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.49 KB | None | 0 0
  1. M.rgb_to_hsv = function(r, g, b)
  2.     r, g, b = (r / 255), (g / 255), (b / 255)
  3.     local mx = math.max(r, g, b)
  4.     local mn = math.min(r, g, b)
  5.     local h, s
  6.  
  7.     if mx == mn then
  8.         h = 0
  9.     d = 0
  10.     else
  11.     local d = mx - mn
  12.         if     mx == r then h = (g - b) / d + (g < b and 6 or 0)
  13.         elseif mx == g then h = (b - r) / d + 2
  14.         elseif mx == b then h = (r - g) / d + 4 end
  15.         h = h / 6
  16.     end
  17.     s = (mx == 0) and 0 or (d / mx)
  18.  
  19.     return h, s, mx
  20. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement