use std::collections::HashMap;
use image::Rgba;
lazy_static::lazy_static! {
pub static ref ANSI_MAP: HashMap<u8, Rgba<u8>> = {
let mut m = HashMap::new();
m.insert(30, Rgba([0, 0, 0, 255]));
m.insert(31, Rgba([255, 0, 0, 255]));
m.insert(32, Rgba([0, 255, 0, 255]));
m.insert(33, Rgba([255, 255, 0, 255]));
m.insert(34, Rgba([0, 0, 255, 255]));
m.insert(35, Rgba([255, 0, 255, 255]));
m.insert(36, Rgba([0, 255, 255, 255]));
m.insert(37, Rgba([211, 211, 211, 255]));
m.insert(90, Rgba([169, 169, 169, 255]));
m.insert(91, Rgba([255, 144, 144, 255]));
m.insert(92, Rgba([144, 238, 144, 255]));
m.insert(93, Rgba([255, 255, 224, 255]));
m.insert(94, Rgba([173, 216, 230, 255]));
m.insert(95, Rgba([255, 224, 255, 255]));
m.insert(96, Rgba([224, 255, 255, 255]));
m.insert(97, Rgba([255, 255, 255, 255]));
m.insert(40, Rgba([0, 0, 0, 255]));
m.insert(41, Rgba([255, 0, 0, 255]));
m.insert(42, Rgba([0, 255, 0, 255]));
m.insert(43, Rgba([255, 255, 0, 255]));
m.insert(44, Rgba([0, 0, 255, 255]));
m.insert(45, Rgba([255, 0, 255, 255]));
m.insert(46, Rgba([0, 255, 255, 255]));
m.insert(47, Rgba([211, 211, 211, 255]));
m.insert(100, Rgba([169, 169, 169, 255]));
m.insert(101, Rgba([255, 144, 144, 255]));
m.insert(102, Rgba([144, 238, 144, 255]));
m.insert(103, Rgba([255, 255, 224, 255]));
m.insert(104, Rgba([173, 216, 230, 255]));
m.insert(105, Rgba([255, 224, 255, 255]));
m.insert(106, Rgba([224, 255, 255, 255]));
m.insert(107, Rgba([255, 255, 255, 255]));
m
};
}
lazy_static::lazy_static! {
pub static ref MAP256: Vec<Rgba<u8>> = {
vec![
Rgba([0, 0, 0, 255]),
Rgba([128, 0, 0, 255]),
Rgba([0, 128, 0, 255]),
Rgba([128, 128, 0, 255]),
Rgba([0, 0, 128, 255]),
Rgba([128, 0, 128, 255]),
Rgba([0, 128, 128, 255]),
Rgba([192, 192, 192, 255]),
Rgba([128, 128, 128, 255]),
Rgba([255, 0, 0, 255]),
Rgba([0, 255, 0, 255]),
Rgba([255, 255, 0, 255]),
Rgba([0, 0, 255, 255]),
Rgba([255, 0, 255, 255]),
Rgba([0, 255, 255, 255]),
Rgba([255, 255, 255, 255]),
Rgba([0, 0, 0, 255]),
Rgba([0, 0, 95, 255]),
Rgba([0, 0, 135, 255]),
Rgba([0, 0, 175, 255]),
Rgba([0, 0, 215, 255]),
Rgba([0, 0, 255, 255]),
Rgba([0, 95, 0, 255]),
Rgba([0, 95, 95, 255]),
Rgba([0, 95, 135, 255]),
Rgba([0, 95, 175, 255]),
Rgba([0, 95, 215, 255]),
Rgba([0, 95, 255, 255]),
Rgba([0, 135, 0, 255]),
Rgba([0, 135, 95, 255]),
Rgba([0, 135, 135, 255]),
Rgba([0, 135, 175, 255]),
Rgba([0, 135, 215, 255]),
Rgba([0, 135, 255, 255]),
Rgba([0, 175, 0, 255]),
Rgba([0, 175, 95, 255]),
Rgba([0, 175, 135, 255]),
Rgba([0, 175, 175, 255]),
Rgba([0, 175, 215, 255]),
Rgba([0, 175, 255, 255]),
Rgba([0, 215, 0, 255]),
Rgba([0, 215, 95, 255]),
Rgba([0, 215, 135, 255]),
Rgba([0, 215, 175, 255]),
Rgba([0, 215, 215, 255]),
Rgba([0, 215, 255, 255]),
Rgba([0, 255, 0, 255]),
Rgba([0, 255, 95, 255]),
Rgba([0, 255, 135, 255]),
Rgba([0, 255, 175, 255]),
Rgba([0, 255, 215, 255]),
Rgba([0, 255, 255, 255]),
Rgba([95, 0, 0, 255]),
Rgba([95, 0, 95, 255]),
Rgba([95, 0, 135, 255]),
Rgba([95, 0, 175, 255]),
Rgba([95, 0, 215, 255]),
Rgba([95, 0, 255, 255]),
Rgba([95, 95, 0, 255]),
Rgba([95, 95, 95, 255]),
Rgba([95, 95, 135, 255]),
Rgba([95, 95, 175, 255]),
Rgba([95, 95, 215, 255]),
Rgba([95, 95, 255, 255]),
Rgba([95, 135, 0, 255]),
Rgba([95, 135, 95, 255]),
Rgba([95, 135, 135, 255]),
Rgba([95, 135, 175, 255]),
Rgba([95, 135, 215, 255]),
Rgba([95, 135, 255, 255]),
Rgba([95, 175, 0, 255]),
Rgba([95, 175, 95, 255]),
Rgba([95, 175, 135, 255]),
Rgba([95, 175, 175, 255]),
Rgba([95, 175, 215, 255]),
Rgba([95, 175, 255, 255]),
Rgba([95, 215, 0, 255]),
Rgba([95, 215, 95, 255]),
Rgba([95, 215, 135, 255]),
Rgba([95, 215, 175, 255]),
Rgba([95, 215, 215, 255]),
Rgba([95, 215, 255, 255]),
Rgba([95, 255, 0, 255]),
Rgba([95, 255, 95, 255]),
Rgba([95, 255, 135, 255]),
Rgba([95, 255, 175, 255]),
Rgba([95, 255, 215, 255]),
Rgba([95, 255, 255, 255]),
Rgba([135, 0, 0, 255]),
Rgba([135, 0, 95, 255]),
Rgba([135, 0, 135, 255]),
Rgba([135, 0, 175, 255]),
Rgba([135, 0, 215, 255]),
Rgba([135, 0, 255, 255]),
Rgba([135, 95, 0, 255]),
Rgba([135, 95, 95, 255]),
Rgba([135, 95, 135, 255]),
Rgba([135, 95, 175, 255]),
Rgba([135, 95, 215, 255]),
Rgba([135, 95, 255, 255]),
Rgba([135, 135, 0, 255]),
Rgba([135, 135, 95, 255]),
Rgba([135, 135, 135, 255]),
Rgba([135, 135, 175, 255]),
Rgba([135, 135, 215, 255]),
Rgba([135, 135, 255, 255]),
Rgba([135, 175, 0, 255]),
Rgba([135, 175, 95, 255]),
Rgba([135, 175, 135, 255]),
Rgba([135, 175, 175, 255]),
Rgba([135, 175, 215, 255]),
Rgba([135, 175, 255, 255]),
Rgba([135, 215, 0, 255]),
Rgba([135, 215, 95, 255]),
Rgba([135, 215, 135, 255]),
Rgba([135, 215, 175, 255]),
Rgba([135, 215, 215, 255]),
Rgba([135, 215, 255, 255]),
Rgba([135, 255, 0, 255]),
Rgba([135, 255, 95, 255]),
Rgba([135, 255, 135, 255]),
Rgba([135, 255, 175, 255]),
Rgba([135, 255, 215, 255]),
Rgba([135, 255, 255, 255]),
Rgba([175, 0, 0, 255]),
Rgba([175, 0, 95, 255]),
Rgba([175, 0, 135, 255]),
Rgba([175, 0, 175, 255]),
Rgba([175, 0, 215, 255]),
Rgba([175, 0, 255, 255]),
Rgba([175, 95, 0, 255]),
Rgba([175, 95, 95, 255]),
Rgba([175, 95, 135, 255]),
Rgba([175, 95, 175, 255]),
Rgba([175, 95, 215, 255]),
Rgba([175, 95, 255, 255]),
Rgba([175, 135, 0, 255]),
Rgba([175, 135, 95, 255]),
Rgba([175, 135, 135, 255]),
Rgba([175, 135, 175, 255]),
Rgba([175, 135, 215, 255]),
Rgba([175, 135, 255, 255]),
Rgba([175, 175, 0, 255]),
Rgba([175, 175, 95, 255]),
Rgba([175, 175, 135, 255]),
Rgba([175, 175, 175, 255]),
Rgba([175, 175, 215, 255]),
Rgba([175, 175, 255, 255]),
Rgba([175, 215, 0, 255]),
Rgba([175, 215, 95, 255]),
Rgba([175, 215, 135, 255]),
Rgba([175, 215, 175, 255]),
Rgba([175, 215, 215, 255]),
Rgba([175, 215, 255, 255]),
Rgba([175, 255, 0, 255]),
Rgba([175, 255, 95, 255]),
Rgba([175, 255, 135, 255]),
Rgba([175, 255, 175, 255]),
Rgba([175, 255, 215, 255]),
Rgba([175, 255, 255, 255]),
Rgba([215, 0, 0, 255]),
Rgba([215, 0, 95, 255]),
Rgba([215, 0, 135, 255]),
Rgba([215, 0, 175, 255]),
Rgba([215, 0, 215, 255]),
Rgba([215, 0, 255, 255]),
Rgba([215, 95, 0, 255]),
Rgba([215, 95, 95, 255]),
Rgba([215, 95, 135, 255]),
Rgba([215, 95, 175, 255]),
Rgba([215, 95, 215, 255]),
Rgba([215, 95, 255, 255]),
Rgba([215, 135, 0, 255]),
Rgba([215, 135, 95, 255]),
Rgba([215, 135, 135, 255]),
Rgba([215, 135, 175, 255]),
Rgba([215, 135, 215, 255]),
Rgba([215, 135, 255, 255]),
Rgba([215, 175, 0, 255]),
Rgba([215, 175, 95, 255]),
Rgba([215, 175, 135, 255]),
Rgba([215, 175, 175, 255]),
Rgba([215, 175, 215, 255]),
Rgba([215, 175, 255, 255]),
Rgba([215, 215, 0, 255]),
Rgba([215, 215, 95, 255]),
Rgba([215, 215, 135, 255]),
Rgba([215, 215, 175, 255]),
Rgba([215, 215, 215, 255]),
Rgba([215, 215, 255, 255]),
Rgba([215, 255, 0, 255]),
Rgba([215, 255, 95, 255]),
Rgba([215, 255, 135, 255]),
Rgba([215, 255, 175, 255]),
Rgba([215, 255, 215, 255]),
Rgba([215, 255, 255, 255]),
Rgba([255, 0, 0, 255]),
Rgba([255, 0, 95, 255]),
Rgba([255, 0, 135, 255]),
Rgba([255, 0, 175, 255]),
Rgba([255, 0, 215, 255]),
Rgba([255, 0, 255, 255]),
Rgba([255, 95, 0, 255]),
Rgba([255, 95, 95, 255]),
Rgba([255, 95, 135, 255]),
Rgba([255, 95, 175, 255]),
Rgba([255, 95, 215, 255]),
Rgba([255, 95, 255, 255]),
Rgba([255, 135, 0, 255]),
Rgba([255, 135, 95, 255]),
Rgba([255, 135, 135, 255]),
Rgba([255, 135, 175, 255]),
Rgba([255, 135, 215, 255]),
Rgba([255, 135, 255, 255]),
Rgba([255, 175, 0, 255]),
Rgba([255, 175, 95, 255]),
Rgba([255, 175, 135, 255]),
Rgba([255, 175, 175, 255]),
Rgba([255, 175, 215, 255]),
Rgba([255, 175, 255, 255]),
Rgba([255, 215, 0, 255]),
Rgba([255, 215, 95, 255]),
Rgba([255, 215, 135, 255]),
Rgba([255, 215, 175, 255]),
Rgba([255, 215, 215, 255]),
Rgba([255, 215, 255, 255]),
Rgba([255, 255, 0, 255]),
Rgba([255, 255, 95, 255]),
Rgba([255, 255, 135, 255]),
Rgba([255, 255, 175, 255]),
Rgba([255, 255, 215, 255]),
Rgba([255, 255, 255, 255]),
Rgba([8, 8, 8, 255]),
Rgba([18, 18, 18, 255]),
Rgba([28, 28, 28, 255]),
Rgba([38, 38, 38, 255]),
Rgba([48, 48, 48, 255]),
Rgba([58, 58, 58, 255]),
Rgba([68, 68, 68, 255]),
Rgba([78, 78, 78, 255]),
Rgba([88, 88, 88, 255]),
Rgba([98, 98, 98, 255]),
Rgba([108, 108, 108, 255]),
Rgba([118, 118, 118, 255]),
Rgba([128, 128, 128, 255]),
Rgba([138, 138, 138, 255]),
Rgba([148, 148, 148, 255]),
Rgba([158, 158, 158, 255]),
Rgba([168, 168, 168, 255]),
Rgba([178, 178, 178, 255]),
Rgba([188, 188, 188, 255]),
Rgba([198, 198, 198, 255]),
Rgba([208, 208, 208, 255]),
Rgba([218, 218, 218, 255]),
Rgba([228, 228, 228, 255]),
Rgba([238, 238, 238, 255]),
]
};
}