class Camalian::Palette

Collection of colors with some useful features

Public Class Methods

from_hex(hex_values) click to toggle source
# File lib/camalian/palette.rb, line 6
def self.from_hex(hex_values)
  new(hex_values.map { |v| Color.from_hex(v) })
end

Public Instance Methods

average_color() click to toggle source
# File lib/camalian/palette.rb, line 26
def average_color
  r = map(&:r).inject(&:+)
  g = map(&:g).inject(&:+)
  b = map(&:b).inject(&:+)
  size = self.size

  Color.new(r / size, g / size, b / size)
end
light_colors(limit1, limit2) click to toggle source
# File lib/camalian/palette.rb, line 35
def light_colors(limit1, limit2)
  min = [limit1, limit2].min
  max = [limit1, limit2].max
  table = dup
  Palette.new(table.delete_if { |color| color.l > max or color.l < min })
end
sort_by_hue() click to toggle source
# File lib/camalian/palette.rb, line 14
def sort_by_hue
  Palette.new(sort_by(&:h).reverse)
end
sort_by_lightness() click to toggle source
# File lib/camalian/palette.rb, line 10
def sort_by_lightness
  Palette.new(sort_by(&:l).reverse)
end
sort_by_saturation() click to toggle source
# File lib/camalian/palette.rb, line 22
def sort_by_saturation
  Palette.new(sort_by(&:s).reverse)
end
sort_similar_colors() click to toggle source
# File lib/camalian/palette.rb, line 18
def sort_similar_colors
  Palette.new(sort_by(&:hsv))
end
to_hex() click to toggle source
# File lib/camalian/palette.rb, line 42
def to_hex
  map(&:to_hex)
end