Sha256: 0b2c2e28741ec3fe48137d7921ef0b1e7a1e7bee0bf842da4dfbffdc47a12dd4

Contents?: true

Size: 645 Bytes

Versions: 3

Compression:

Stored size: 645 Bytes

Contents

module ColorConversion
  class CmykConverter < ColorConverter

    def self.matches?(color)
      return false unless color.kind_of?(Hash)

      color.include?(:c) && color.include?(:m) && 
      color.include?(:y) && color.include?(:k)
    end

    private

    def to_rgba(cmyk)
      c = cmyk[:c].to_f / 100.0
      m = cmyk[:m].to_f / 100.0
      y = cmyk[:y].to_f / 100.0
      k = cmyk[:k].to_f / 100.0

      r = (255 * (1.0 - [1.0, c * (1.0 - k) + k].min)).round
      g = (255 * (1.0 - [1.0, m * (1.0 - k) + k].min)).round
      b = (255 * (1.0 - [1.0, y * (1.0 - k) + k].min)).round

      {r: r, g: g, b: b, a: 1.0}
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
color_conversion-0.1.2 lib/color_conversion/converters/cmyk_converter.rb
color_conversion-0.1.1 lib/color_conversion/converters/cmyk_converter.rb
color_conversion-0.1.0 lib/color_conversion/converters/cmyk_converter.rb