class RubyXL::ColorConvenienceClasses::RgbColor
ciintelligence.blogspot.com/2012/02/converting-excel-theme-color-and-tint.html
Attributes
a[RW]
b[RW]
g[RW]
r[RW]
Public Class Methods
parse(str)
click to toggle source
# File lib/rubyXL/convenience_methods/color.rb, line 62 def self.parse(str) r, g, b, a = str.unpack("A2A2A2A2") rgb_color = RgbColor.new rgb_color.r = r && r.to_i(16) rgb_color.g = g && g.to_i(16) rgb_color.b = b && b.to_i(16) rgb_color.a = a && a.to_i(16) rgb_color end
Public Instance Methods
to_hls()
click to toggle source
# File lib/rubyXL/convenience_methods/color.rb, line 24 def to_hls hls_color = HlsColor.new # Note that we are overriding accessors with local vars here: r = self.r / 255.0 g = self.g / 255.0 b = self.b / 255.0 hls_color.a = (self.a || 0) / 255.0 min = [r, g, b].min max = [r, g, b].max delta = max - min if (max == min) then hls_color.h = hls_color.s = 0 hls_color.l = max return hls_color end hls_color.l = (min + max) / 2 if (hls_color.l < 0.5) then hls_color.s = delta / (max + min); else hls_color.s = delta / (2.0 - max - min); end hls_color.h = (g - b) / delta if (r == max) hls_color.h = 2.0 + (b - r) / delta if (g == max) hls_color.h = 4.0 + (r - g) / delta if (b == max) hls_color.h *= 60; hls_color.h += 360 if hls_color.h < 0 hls_color end
to_s()
click to toggle source
# File lib/rubyXL/convenience_methods/color.rb, line 74 def to_s str = r.to_s(16) + g.to_s(16) + b.to_s(16) str += a.to_s(16) if a && a != 0 str end