Class: Chroma::Converters::RgbConverter
- Defined in:
- lib/chroma/converters/rgb_converter.rb
Overview
Class to convert a color mode to Chroma::ColorModes::Rgb.
Instance Method Summary collapse
-
#convert_hsl ⇒ ColorModes::Rgb
Convert hsl to rgb.
-
#convert_hsv ⇒ ColorModes::Rgb
Convert hsv to rgb.
-
#convert_rgb ⇒ ColorModes::Rgb
Returns @input because it's the same color mode.
Methods inherited from Base
convert_hsl, convert_hsv, convert_rgb, #initialize
Methods included from Helpers::Bounders
#bound01, #bound_alpha, #clamp01, #to_percentage
Constructor Details
This class inherits a constructor from Chroma::Converters::Base
Instance Method Details
#convert_hsl ⇒ ColorModes::Rgb
Convert hsl to rgb.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/chroma/converters/rgb_converter.rb', line 13 def convert_hsl h, s, l = @input h = bound01(h, 360) s = bound01(s, 100) l = bound01(l, 100) if s.zero? r = g = b = l * 255 else q = l < 0.5 ? l * (1 + s) : l + s - l * s p = 2 * l - q r = hue_to_rgb(p, q, h + 1/3.0) * 255 g = hue_to_rgb(p, q, h) * 255 b = hue_to_rgb(p, q, h - 1/3.0) * 255 end ColorModes::Rgb.new(r, g, b, bound_alpha(@input.a)) end |
#convert_hsv ⇒ ColorModes::Rgb
Convert hsv to rgb.
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 |
#convert_rgb ⇒ ColorModes::Rgb
Returns @input because it's the same color mode.
7 8 9 |
# File 'lib/chroma/converters/rgb_converter.rb', line 7 def convert_rgb @input end |