Sha256: a7320ab08e10182fb1adfdab25bf02dc26f50ec712d73483743fba7c0367e12d
Contents?: true
Size: 671 Bytes
Versions: 2
Compression:
Stored size: 671 Bytes
Contents
module RGBUtils class RGBToLinearRGBConverter < Converter GAMMA = 2.4 CUTOFF_POINT = 0.03928 SLOPE = 12.92 def initialize(rgb) @rgb = HexToRGBConverter.convert(rgb) end def convert @linear_rgb ||= begin linear_red, linear_green, linear_blue = calculate_linear_rgb LinearRGB.new(red: linear_red, green: linear_green, blue: linear_blue) end end private attr_accessor :rgb def calculate_linear_rgb rgb.as_unit_range.map do |color| if color <= CUTOFF_POINT color / SLOPE else ((color + 0.055) / 1.055) ** GAMMA end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rgb_utils-0.1.2 | lib/rgb_utils/converters/rgb_to_linear_rgb_converter.rb |
rgb_utils-0.1.1 | lib/rgb_utils/converters/rgb_to_linear_rgb_converter.rb |