#终端图形 #转义 #图像 #聊天 #浏览器 #ANSI #电子邮件

bin+lib insa

Insa 将图像渲染成文本 - 它是一个终端位图图形库

2 个版本 (1 个稳定版)

1.0.0 2022 年 12 月 11 日
0.1.0-dev2022 年 12 月 8 日

图形 API 中排名 #536

MIT 许可证

3MB
573

Insa

insa version on crates.io

Insa 将位图图像转换为文本 / ANSI 转义。为什么?形状检测和匹配适当的字形,而不仅仅是亮度 => 字符。让基于终端的应用程序也能显示一些基本的图形,如邮件、聊天、文件浏览器...

这是一个 cargo 库 insa,也是一个命令行工具 insainsa-rasterize

原始宽度为 400px 的图像转换为 50 个字符。一个字符占 8px 宽度和 16px 高度。

original

insa docs/insa.jpeg

insa blocks

insa --style plain docs/insa.jpeg

insa blocks

注意,默认的块状样式通过检测子块形状,可能提供了双倍的精度和保真度,而字符数量相同。

您也可以使用库提供自己的画笔来制作 ASCII 艺术作品。例如

logo original

insa --style simple-on-dark docs/logo.png

logo ascii art

工具使用方法

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");

特性

fontdue 特性启用光栅化。

许可证

带有例外情况的 MIT 许可证

依赖项

~16MB
~106K SLoC