Crates.io | insa |
lib.rs | insa |
version | 1.0.0 |
source | src |
created_at | 2022-12-08 23:47:39.566755 |
updated_at | 2022-12-11 23:39:30.600398 |
description | Insa renders imaxes to text - it's a terminal bitmap graphics library |
homepage | |
repository | https://gitlab.com/BrightOpen/insa |
max_upload_size | |
id | 732885 |
size | 12,373,268 |
Insa converts raster bitmap images to text / ansi escapes. Why? Shape detection and matching appropriate glyph, rather than just luminosity => char. Let terminal based apps show some basic graphics, too - mail, chat, file browser...
This is a cargo lib insa
and also a command line tool insa
and insa-rasterize
The original of 400px width is converted to 50 chars. One character takes 8px width and 16px height.
insa docs/insa.jpeg
insa --style plain docs/insa.jpeg
Notice how the blocks (default) style brings perhaps double the precision and fidelity with the same amount of characters as it detects sub-block shapes.
You can supply your own brushes to make ascii art, too, with the lib. For example:
insa --style simple-on-dark docs/logo.png
cargo install insa
insa --help
insa-rasterize --help
cargo add insa
let img = "docs/insa.jpeg";
let img = image::open(img).expect("opening the image");
let mut insa = insa::Insa::blocks();
for ((col, row), symbol) in insa.convert(&img) {
if col == 0 && row != 0 {
println!("\x1b[0m");
}
print!("{symbol}");
}
println!("\x1b[0m");
The fontdue
feature enables rasterization.