Method: Color::Palette::Gimp#initialize
- Defined in:
- lib/coloration/color/palette/gimp.rb
#initialize(palette) ⇒ Gimp
Create a new GIMP palette.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/coloration/color/palette/gimp.rb', line 43 def initialize(palette) @colors = [] @names = {} @valid = false @name = "(unnamed)" index = 0 palette.split($/).each do |line| line.chomp! line.gsub!(/\s*#.*\Z/, '') next if line.empty? if line =~ /\AGIMP Palette\Z/ @valid = true next end info = /(\w+):\s(.*$)/.match(line) if info @name = info.captures[1] if info.captures[0] =~ /name/i next end line.gsub!(/^\s+/, '') data = line.split(/\s+/, 4) name = data.pop.strip data.map! { |el| el.to_i } color = Color::RGB.new(*data) @colors[index] = color @names[name] ||= [] @names[name] << color index += 1 end end |