Method: Chroma::Converters::RgbConverter#convert_hsv

Defined in:
lib/chroma/converters/rgb_converter.rb

#convert_hsvColorModes::Rgb

Convert hsv to rgb.

Returns:



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/chroma/converters/rgb_converter.rb', line 35

def convert_hsv
  h, s, v = @input

  h = bound01(h, 360) * 6
  s = bound01(s, 100)
  v = bound01(v, 100)

  i = h.floor
  f = h - i
  p = v * (1 - s)
  q = v * (1 - f * s)
  t = v * (1 - (1 - f) * s)
  mod = i % 6

  r = [v, q, p, p, t, v][mod] * 255
  g = [t, v, v, q, p, p][mod] * 255
  b = [p, p, t, v, v, q][mod] * 255

  ColorModes::Rgb.new(r, g, b, bound_alpha(@input.a))
end