From 916aced1bef07001ef4eee2a1cde6cd6e33b4bc3 Mon Sep 17 00:00:00 2001 From: jaseg Date: Fri, 3 Jan 2014 00:10:20 +0100 Subject: Now with even more abstract art. --- host/matelight/color.c | 291 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 host/matelight/color.c (limited to 'host/matelight/color.c') diff --git a/host/matelight/color.c b/host/matelight/color.c new file mode 100644 index 0000000..938bdf1 --- /dev/null +++ b/host/matelight/color.c @@ -0,0 +1,291 @@ + +#include "color.h" +#include +#include + +int xterm_color_index(color_t c){ + int candidate = 0; + int best_distance = 0x7fffffff; + for(int i=0; i<256; i++){ + color_t k = colortable[i]; + int tmp = abs(c.r - k.r); + tmp *= tmp; + int distance = tmp; + if(distance > best_distance) + continue; + tmp = abs(c.g - k.g); + tmp *= tmp; + distance += tmp; + if(distance > best_distance) + continue; + tmp = abs(c.b - k.b); + tmp *= tmp; + distance += tmp; + if(distance > best_distance) + continue; + best_distance = distance; + candidate = i; + } + return candidate; +} + +color_t colortable[256] = { + {0x00, 0x00, 0x00}, + {0xa8, 0x00, 0x00}, + {0x00, 0xa8, 0x00}, + {0xa8, 0x54, 0x00}, + {0x00, 0x00, 0xa8}, + {0xa8, 0x00, 0xa8}, + {0x00, 0xa8, 0xa8}, + {0xa8, 0xa8, 0xa8}, + {0x54, 0x54, 0x54}, + {0xfc, 0x54, 0x54}, + {0x54, 0xfc, 0x54}, + {0xfc, 0xfc, 0x54}, + {0x54, 0x54, 0xfc}, + {0xfc, 0x54, 0xfc}, + {0x54, 0xfc, 0xfc}, + {0xfc, 0xfc, 0xfc}, + {0x00, 0x00, 0x00}, + {0x00, 0x00, 0x5f}, + {0x00, 0x00, 0x87}, + {0x00, 0x00, 0xaf}, + {0x00, 0x00, 0xd7}, + {0x00, 0x00, 0xff}, + {0x00, 0x5f, 0x00}, + {0x00, 0x5f, 0x5f}, + {0x00, 0x5f, 0x87}, + {0x00, 0x5f, 0xaf}, + {0x00, 0x5f, 0xd7}, + {0x00, 0x5f, 0xff}, + {0x00, 0x87, 0x00}, + {0x00, 0x87, 0x5f}, + {0x00, 0x87, 0x87}, + {0x00, 0x87, 0xaf}, + {0x00, 0x87, 0xd7}, + {0x00, 0x87, 0xff}, + {0x00, 0xaf, 0x00}, + {0x00, 0xaf, 0x5f}, + {0x00, 0xaf, 0x87}, + {0x00, 0xaf, 0xaf}, + {0x00, 0xaf, 0xd7}, + {0x00, 0xaf, 0xff}, + {0x00, 0xd7, 0x00}, + {0x00, 0xd7, 0x5f}, + {0x00, 0xd7, 0x87}, + {0x00, 0xd7, 0xaf}, + {0x00, 0xd7, 0xd7}, + {0x00, 0xd7, 0xff}, + {0x00, 0xff, 0x00}, + {0x00, 0xff, 0x5f}, + {0x00, 0xff, 0x87}, + {0x00, 0xff, 0xaf}, + {0x00, 0xff, 0xd7}, + {0x00, 0xff, 0xff}, + {0x5f, 0x00, 0x00}, + {0x5f, 0x00, 0x5f}, + {0x5f, 0x00, 0x87}, + {0x5f, 0x00, 0xaf}, + {0x5f, 0x00, 0xd7}, + {0x5f, 0x00, 0xff}, + {0x5f, 0x5f, 0x00}, + {0x5f, 0x5f, 0x5f}, + {0x5f, 0x5f, 0x87}, + {0x5f, 0x5f, 0xaf}, + {0x5f, 0x5f, 0xd7}, + {0x5f, 0x5f, 0xff}, + {0x5f, 0x87, 0x00}, + {0x5f, 0x87, 0x5f}, + {0x5f, 0x87, 0x87}, + {0x5f, 0x87, 0xaf}, + {0x5f, 0x87, 0xd7}, + {0x5f, 0x87, 0xff}, + {0x5f, 0xaf, 0x00}, + {0x5f, 0xaf, 0x5f}, + {0x5f, 0xaf, 0x87}, + {0x5f, 0xaf, 0xaf}, + {0x5f, 0xaf, 0xd7}, + {0x5f, 0xaf, 0xff}, + {0x5f, 0xd7, 0x00}, + {0x5f, 0xd7, 0x5f}, + {0x5f, 0xd7, 0x87}, + {0x5f, 0xd7, 0xaf}, + {0x5f, 0xd7, 0xd7}, + {0x5f, 0xd7, 0xff}, + {0x5f, 0xff, 0x00}, + {0x5f, 0xff, 0x5f}, + {0x5f, 0xff, 0x87}, + {0x5f, 0xff, 0xaf}, + {0x5f, 0xff, 0xd7}, + {0x5f, 0xff, 0xff}, + {0x87, 0x00, 0x00}, + {0x87, 0x00, 0x5f}, + {0x87, 0x00, 0x87}, + {0x87, 0x00, 0xaf}, + {0x87, 0x00, 0xd7}, + {0x87, 0x00, 0xff}, + {0x87, 0x5f, 0x00}, + {0x87, 0x5f, 0x5f}, + {0x87, 0x5f, 0x87}, + {0x87, 0x5f, 0xaf}, + {0x87, 0x5f, 0xd7}, + {0x87, 0x5f, 0xff}, + {0x87, 0x87, 0x00}, + {0x87, 0x87, 0x5f}, + {0x87, 0x87, 0x87}, + {0x87, 0x87, 0xaf}, + {0x87, 0x87, 0xd7}, + {0x87, 0x87, 0xff}, + {0x87, 0xaf, 0x00}, + {0x87, 0xaf, 0x5f}, + {0x87, 0xaf, 0x87}, + {0x87, 0xaf, 0xaf}, + {0x87, 0xaf, 0xd7}, + {0x87, 0xaf, 0xff}, + {0x87, 0xd7, 0x00}, + {0x87, 0xd7, 0x5f}, + {0x87, 0xd7, 0x87}, + {0x87, 0xd7, 0xaf}, + {0x87, 0xd7, 0xd7}, + {0x87, 0xd7, 0xff}, + {0x87, 0xff, 0x00}, + {0x87, 0xff, 0x5f}, + {0x87, 0xff, 0x87}, + {0x87, 0xff, 0xaf}, + {0x87, 0xff, 0xd7}, + {0x87, 0xff, 0xff}, + {0xaf, 0x00, 0x00}, + {0xaf, 0x00, 0x5f}, + {0xaf, 0x00, 0x87}, + {0xaf, 0x00, 0xaf}, + {0xaf, 0x00, 0xd7}, + {0xaf, 0x00, 0xff}, + {0xaf, 0x5f, 0x00}, + {0xaf, 0x5f, 0x5f}, + {0xaf, 0x5f, 0x87}, + {0xaf, 0x5f, 0xaf}, + {0xaf, 0x5f, 0xd7}, + {0xaf, 0x5f, 0xff}, + {0xaf, 0x87, 0x00}, + {0xaf, 0x87, 0x5f}, + {0xaf, 0x87, 0x87}, + {0xaf, 0x87, 0xaf}, + {0xaf, 0x87, 0xd7}, + {0xaf, 0x87, 0xff}, + {0xaf, 0xaf, 0x00}, + {0xaf, 0xaf, 0x5f}, + {0xaf, 0xaf, 0x87}, + {0xaf, 0xaf, 0xaf}, + {0xaf, 0xaf, 0xd7}, + {0xaf, 0xaf, 0xff}, + {0xaf, 0xd7, 0x00}, + {0xaf, 0xd7, 0x5f}, + {0xaf, 0xd7, 0x87}, + {0xaf, 0xd7, 0xaf}, + {0xaf, 0xd7, 0xd7}, + {0xaf, 0xd7, 0xff}, + {0xaf, 0xff, 0x00}, + {0xaf, 0xff, 0x5f}, + {0xaf, 0xff, 0x87}, + {0xaf, 0xff, 0xaf}, + {0xaf, 0xff, 0xd7}, + {0xaf, 0xff, 0xff}, + {0xd7, 0x00, 0x00}, + {0xd7, 0x00, 0x5f}, + {0xd7, 0x00, 0x87}, + {0xd7, 0x00, 0xaf}, + {0xd7, 0x00, 0xd7}, + {0xd7, 0x00, 0xff}, + {0xd7, 0x5f, 0x00}, + {0xd7, 0x5f, 0x5f}, + {0xd7, 0x5f, 0x87}, + {0xd7, 0x5f, 0xaf}, + {0xd7, 0x5f, 0xd7}, + {0xd7, 0x5f, 0xff}, + {0xd7, 0x87, 0x00}, + {0xd7, 0x87, 0x5f}, + {0xd7, 0x87, 0x87}, + {0xd7, 0x87, 0xaf}, + {0xd7, 0x87, 0xd7}, + {0xd7, 0x87, 0xff}, + {0xd7, 0xaf, 0x00}, + {0xd7, 0xaf, 0x5f}, + {0xd7, 0xaf, 0x87}, + {0xd7, 0xaf, 0xaf}, + {0xd7, 0xaf, 0xd7}, + {0xd7, 0xaf, 0xff}, + {0xd7, 0xd7, 0x00}, + {0xd7, 0xd7, 0x5f}, + {0xd7, 0xd7, 0x87}, + {0xd7, 0xd7, 0xaf}, + {0xd7, 0xd7, 0xd7}, + {0xd7, 0xd7, 0xff}, + {0xd7, 0xff, 0x00}, + {0xd7, 0xff, 0x5f}, + {0xd7, 0xff, 0x87}, + {0xd7, 0xff, 0xaf}, + {0xd7, 0xff, 0xd7}, + {0xd7, 0xff, 0xff}, + {0xff, 0x00, 0x00}, + {0xff, 0x00, 0x5f}, + {0xff, 0x00, 0x87}, + {0xff, 0x00, 0xaf}, + {0xff, 0x00, 0xd7}, + {0xff, 0x00, 0xff}, + {0xff, 0x5f, 0x00}, + {0xff, 0x5f, 0x5f}, + {0xff, 0x5f, 0x87}, + {0xff, 0x5f, 0xaf}, + {0xff, 0x5f, 0xd7}, + {0xff, 0x5f, 0xff}, + {0xff, 0x87, 0x00}, + {0xff, 0x87, 0x5f}, + {0xff, 0x87, 0x87}, + {0xff, 0x87, 0xaf}, + {0xff, 0x87, 0xd7}, + {0xff, 0x87, 0xff}, + {0xff, 0xaf, 0x00}, + {0xff, 0xaf, 0x5f}, + {0xff, 0xaf, 0x87}, + {0xff, 0xaf, 0xaf}, + {0xff, 0xaf, 0xd7}, + {0xff, 0xaf, 0xff}, + {0xff, 0xd7, 0x00}, + {0xff, 0xd7, 0x5f}, + {0xff, 0xd7, 0x87}, + {0xff, 0xd7, 0xaf}, + {0xff, 0xd7, 0xd7}, + {0xff, 0xd7, 0xff}, + {0xff, 0xff, 0x00}, + {0xff, 0xff, 0x5f}, + {0xff, 0xff, 0x87}, + {0xff, 0xff, 0xaf}, + {0xff, 0xff, 0xd7}, + {0xff, 0xff, 0xff}, + {0x00, 0x00, 0x00}, + {0x12, 0x12, 0x12}, + {0x1c, 0x1c, 0x1c}, + {0x26, 0x26, 0x26}, + {0x30, 0x30, 0x30}, + {0x3a, 0x3a, 0x3a}, + {0x44, 0x44, 0x44}, + {0x4e, 0x4e, 0x4e}, + {0x58, 0x58, 0x58}, + {0x62, 0x62, 0x62}, + {0x6c, 0x6c, 0x6c}, + {0x76, 0x76, 0x76}, + {0x80, 0x80, 0x80}, + {0x8a, 0x8a, 0x8a}, + {0x94, 0x94, 0x94}, + {0x9e, 0x9e, 0x9e}, + {0xa8, 0xa8, 0xa8}, + {0xb2, 0xb2, 0xb2}, + {0xbc, 0xbc, 0xbc}, + {0xc6, 0xc6, 0xc6}, + {0xd0, 0xd0, 0xd0}, + {0xda, 0xda, 0xda}, + {0xe4, 0xe4, 0xe4}, + {0xee, 0xee, 0xee} +}; + + -- cgit