ansee 0.1.1

ANSI escaped text to image CLI tool and Rust library
Documentation
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();
        // Foreground colors
        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]));
        // Background color
        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]),
        ]
    };
}