Module: Cura::Termbox::ColorMapper
- Defined in:
- lib/cura/termbox/color_mapper.rb
Overview
A cached map comparing a color’s rgb values with the 256 terminal color codes.
Constant Summary collapse
- COLOR_CODES =
[ Color.new(0, 0, 0), Color.new(128, 0, 0), Color.new(0, 128, 0), Color.new(128, 128, 0), Color.new(0, 0, 128), Color.new(128, 0, 128), Color.new(0, 128, 128), Color.new(192, 192, 192), Color.new(128, 128, 128), Color.new(255, 0, 0), Color.new(0, 255, 0), Color.new(255, 255, 0), Color.new(0, 0, 255), Color.new(255, 0, 255), Color.new(0, 255, 255), Color.new(255, 255, 255), Color.new(0, 0, 0), Color.new(0, 0, 95), Color.new(0, 0, 135), Color.new(0, 0, 175), Color.new(0, 0, 215), Color.new(0, 0, 255), Color.new(0, 95, 0), Color.new(0, 95, 95), Color.new(0, 95, 135), Color.new(0, 95, 175), Color.new(0, 95, 215), Color.new(0, 95, 255), Color.new(0, 135, 0), Color.new(0, 135, 95), Color.new(0, 135, 135), Color.new(0, 135, 175), Color.new(0, 135, 215), Color.new(0, 135, 255), Color.new(0, 175, 0), Color.new(0, 175, 95), Color.new(0, 175, 135), Color.new(0, 175, 175), Color.new(0, 175, 215), Color.new(0, 175, 255), Color.new(0, 215, 0), Color.new(0, 215, 95), Color.new(0, 215, 135), Color.new(0, 215, 175), Color.new(0, 215, 215), Color.new(0, 215, 255), Color.new(0, 255, 0), Color.new(0, 255, 95), Color.new(0, 255, 135), Color.new(0, 255, 175), Color.new(0, 255, 215), Color.new(0, 255, 255), Color.new(95, 0, 0), Color.new(95, 0, 95), Color.new(95, 0, 135), Color.new(95, 0, 175), Color.new(95, 0, 215), Color.new(95, 0, 255), Color.new(95, 95, 0), Color.new(95, 95, 95), Color.new(95, 95, 135), Color.new(95, 95, 175), Color.new(95, 95, 215), Color.new(95, 95, 255), Color.new(95, 135, 0), Color.new(95, 135, 95), Color.new(95, 135, 135), Color.new(95, 135, 175), Color.new(95, 135, 215), Color.new(95, 135, 255), Color.new(95, 175, 0), Color.new(95, 175, 95), Color.new(95, 175, 135), Color.new(95, 175, 175), Color.new(95, 175, 215), Color.new(95, 175, 255), Color.new(95, 215, 0), Color.new(95, 215, 95), Color.new(95, 215, 135), Color.new(95, 215, 175), Color.new(95, 215, 215), Color.new(95, 215, 255), Color.new(95, 255, 0), Color.new(95, 255, 95), Color.new(95, 255, 135), Color.new(95, 255, 175), Color.new(95, 255, 215), Color.new(95, 255, 255), Color.new(135, 0, 0), Color.new(135, 0, 95), Color.new(135, 0, 135), Color.new(135, 0, 175), Color.new(135, 0, 215), Color.new(135, 0, 255), Color.new(135, 95, 0), Color.new(135, 95, 95), Color.new(135, 95, 135), Color.new(135, 95, 175), Color.new(135, 95, 215), Color.new(135, 95, 255), Color.new(135, 135, 0), Color.new(135, 135, 95), Color.new(135, 135, 135), Color.new(135, 135, 175), Color.new(135, 135, 215), Color.new(135, 135, 255), Color.new(135, 175, 0), Color.new(135, 175, 95), Color.new(135, 175, 135), Color.new(135, 175, 175), Color.new(135, 175, 215), Color.new(135, 175, 255), Color.new(135, 215, 0), Color.new(135, 215, 95), Color.new(135, 215, 135), Color.new(135, 215, 175), Color.new(135, 215, 215), Color.new(135, 215, 255), Color.new(135, 255, 0), Color.new(135, 255, 95), Color.new(135, 255, 135), Color.new(135, 255, 175), Color.new(135, 255, 215), Color.new(135, 255, 255), Color.new(175, 0, 0), Color.new(175, 0, 95), Color.new(175, 0, 135), Color.new(175, 0, 175), Color.new(175, 0, 215), Color.new(175, 0, 255), Color.new(175, 95, 0), Color.new(175, 95, 95), Color.new(175, 95, 135), Color.new(175, 95, 175), Color.new(175, 95, 215), Color.new(175, 95, 255), Color.new(175, 135, 0), Color.new(175, 135, 95), Color.new(175, 135, 135), Color.new(175, 135, 175), Color.new(175, 135, 215), Color.new(175, 135, 255), Color.new(175, 175, 0), Color.new(175, 175, 95), Color.new(175, 175, 135), Color.new(175, 175, 175), Color.new(175, 175, 215), Color.new(175, 175, 255), Color.new(175, 215, 0), Color.new(175, 215, 95), Color.new(175, 215, 135), Color.new(175, 215, 175), Color.new(175, 215, 215), Color.new(175, 215, 255), Color.new(175, 255, 0), Color.new(175, 255, 95), Color.new(175, 255, 135), Color.new(175, 255, 175), Color.new(175, 255, 215), Color.new(175, 255, 255), Color.new(215, 0, 0), Color.new(215, 0, 95), Color.new(215, 0, 135), Color.new(215, 0, 175), Color.new(215, 0, 215), Color.new(215, 0, 255), Color.new(215, 95, 0), Color.new(215, 95, 95), Color.new(215, 95, 135), Color.new(215, 95, 175), Color.new(215, 95, 215), Color.new(215, 95, 255), Color.new(215, 135, 0), Color.new(215, 135, 95), Color.new(215, 135, 135), Color.new(215, 135, 175), Color.new(215, 135, 215), Color.new(215, 135, 255), Color.new(215, 175, 0), Color.new(215, 175, 95), Color.new(215, 175, 135), Color.new(215, 175, 175), Color.new(215, 175, 215), Color.new(215, 175, 255), Color.new(215, 215, 0), Color.new(215, 215, 95), Color.new(215, 215, 135), Color.new(215, 215, 175), Color.new(215, 215, 215), Color.new(215, 215, 255), Color.new(215, 255, 0), Color.new(215, 255, 95), Color.new(215, 255, 135), Color.new(215, 255, 175), Color.new(215, 255, 215), Color.new(215, 255, 255), Color.new(255, 0, 0), Color.new(255, 0, 95), Color.new(255, 0, 135), Color.new(255, 0, 175), Color.new(255, 0, 215), Color.new(255, 0, 255), Color.new(255, 95, 0), Color.new(255, 95, 95), Color.new(255, 95, 135), Color.new(255, 95, 175), Color.new(255, 95, 215), Color.new(255, 95, 255), Color.new(255, 135, 0), Color.new(255, 135, 95), Color.new(255, 135, 135), Color.new(255, 135, 175), Color.new(255, 135, 215), Color.new(255, 135, 255), Color.new(255, 175, 0), Color.new(255, 175, 95), Color.new(255, 175, 135), Color.new(255, 175, 175), Color.new(255, 175, 215), Color.new(255, 175, 255), Color.new(255, 215, 0), Color.new(255, 215, 95), Color.new(255, 215, 135), Color.new(255, 215, 175), Color.new(255, 215, 215), Color.new(255, 215, 255), Color.new(255, 255, 0), Color.new(255, 255, 95), Color.new(255, 255, 135), Color.new(255, 255, 175), Color.new(255, 255, 215), Color.new(255, 255, 255), Color.new(8, 8, 8), Color.new(18, 18, 18), Color.new(28, 28, 28), Color.new(38, 38, 38), Color.new(48, 48, 48), Color.new(58, 58, 58), Color.new(68, 68, 68), Color.new(78, 78, 78), Color.new(88, 88, 88), Color.new(96, 96, 96), Color.new(102, 102, 102), Color.new(118, 118, 118), Color.new(128, 128, 128), Color.new(138, 138, 138), Color.new(148, 148, 148), Color.new(158, 158, 158), Color.new(168, 168, 168), Color.new(178, 178, 178), Color.new(188, 188, 188), Color.new(198, 198, 198), Color.new(208, 208, 208), Color.new(218, 218, 218), Color.new(228, 228, 228), Color.new(238, 238, 238) ]
- CACHE =
{}
Class Method Summary collapse
-
.code(color, _number_of_colors = 256) ⇒ Integer
Find the closest terminal color code from the given RGB values.
Class Method Details
.code(color, _number_of_colors = 256) ⇒ Integer
Find the closest terminal color code from the given RGB values.
339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
# File 'lib/cura/termbox/color_mapper.rb', line 339 def code(color, _number_of_colors=256) code = CACHE[color.hex] if code.nil? # code = find_closest_code(rgb, number_of_colors) distances = COLOR_CODES.map { |code| code - color } code = distances.each_with_index.min[1] CACHE[color.hex] = code end code end |