2 个版本 (1 个稳定版)
1.0.0 | 2022 年 12 月 11 日 |
---|---|
0.1.0-dev | 2022 年 12 月 8 日 |
在 图形 API 中排名 #536
3MB
573 行
Insa
Insa 将位图图像转换为文本 / ANSI 转义。为什么?形状检测和匹配适当的字形,而不仅仅是亮度 => 字符。让基于终端的应用程序也能显示一些基本的图形,如邮件、聊天、文件浏览器...
这是一个 cargo 库 insa
,也是一个命令行工具 insa
和 insa-rasterize
原始宽度为 400px 的图像转换为 50 个字符。一个字符占 8px 宽度和 16px 高度。
insa docs/insa.jpeg
insa --style plain docs/insa.jpeg
注意,默认的块状样式通过检测子块形状,可能提供了双倍的精度和保真度,而字符数量相同。
您也可以使用库提供自己的画笔来制作 ASCII 艺术作品。例如
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");
特性
fontdue
特性启用光栅化。
许可证
依赖项
~16MB
~106K SLoC