ascii-image-cli 0.2.1

Convert images into ASCII art using a fast Rust CLI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fn luminance(r: u8, g: u8, b: u8) -> f32 {
    0.2126 * r as f32 + 0.7152 * g as f32 + 0.0722 * b as f32
}

fn gamma_correct(l: f32) -> f32 {
    (l / 255.0).powf(2.2) * 255.0
}

pub fn ascii_char(chars: &str, r: u8, g: u8, b: u8) -> char {
    let brightness = luminance(r, g, b);
    let brightness = gamma_correct(brightness);

    let t = (brightness / 255.0).clamp(0.0, 1.0);
    let index = (t * (chars.len() - 1) as f32).round() as usize;

    chars.chars().nth(index).unwrap()
}