将图片转换为终端字符画的命令行工具,支持 ASCII 字符、盲文点阵 (Braille) 和 半色块 (▀) 三种风格,均保留原始图像颜色,并支持透明 PNG。
- 测试图片作者为CORE,若有侵权请联系删除。
安装依赖:
pip install pillow numpy scipy click
将 braille.py、colorblocks.py、asciichr.py、img2text.py 放在同一目录,执行:
python img2text.py [选项] <图片路径>
或打包为 img2text.exe 后直接运行:
img2text.exe [选项] <图片路径>
| 参数 | 说明 |
|---|---|
图片路径 |
必需,待转换的图片文件(支持 PNG、JPEG 等) |
-w, --width |
输出字符宽度,默认 50 |
-a, --alpha_threshold |
Alpha 通道阈值(0-255),低于此值视为透明,默认 128 |
-c, --colored |
标志,加上后输出带 ANSI 颜色的字符画;不加则输出纯文本 |
-m, --mode |
输出模式:a=ASCII, b=盲文, c=半色块;不指定则输出全部三种 |
-o, --output |
输出文件名;不指定则使用默认名称。未指定 mode 时会在后缀前自动添加 _a/_b/_c |
# 宽度 80,使用默认透明度阈值,无颜色
python img2text.py logo.png -w 80
# 启用颜色,宽度 100,透明度阈值 200
python img2text.py logo.png -w 100 -a 200 -c
# 简写形式
python img2text.py logo.png -w 60 -c
# 只输出 ASCII 模式
python img2text.py logo.png -m a
# 只输出盲文模式,并指定文件名
python img2text.py logo.png -m b -o braille.txt
# 输出三种模式,并指定基础文件名(生成 result_a.txt, result_b.txt, result_c.txt)
python img2text.py logo.png -o result.txt
# 组合使用:彩色 ASCII,宽度 80,指定输出文件名
python img2text.py logo.png -w 80 -c -m a -o ascii_art.txt
-m 和 -o:生成 a.txt、b.txt、c.txt-m 未指定 -o:生成对应模式的默认文件(如 -m a 生成 a.txt)-m 和 -o:生成单个指定文件(如 -m a -o out.txt 生成 out.txt)-m 但指定了 -o:生成三个文件,在扩展名前自动添加后缀区分(如 -o result.txt 生成 result_a.txt、result_b.txt、result_c.txt)所有文件均以 UTF-8 编码保存,可直接在支持 ANSI 颜色的终端中查看或使用 cat/type 命令显示。
你也可以在 Python 脚本中单独调用各个模块,所有函数均支持 colored 参数。
from asciichr import image_to_asciichr
from braille import image_to_braille
from colorblocks import image_to_color_blocks
# 无颜色输出
ascii_lines = image_to_asciichr('1.png', output_width=80, colored=False)
# 彩色输出
braille_lines = image_to_braille('1.png', output_width=80, colored=True)
各函数的详细参数请参考源码中的 docstring。
-c)时,需要终端支持 真彩色(24-bit ANSI 颜色):U+2800–U+28FF(现代终端基本都支持)。运行 img2text.exe logo.png -w 80 -c 后,终端输出类似:
ASCII结果行 盲文结果行 半色块结果行
... ... ...
同时生成 a.txt、b.txt、c.txt 三个文件。
欢迎提交 Issue 或 Pull Request。
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
$ claude mcp add img2text \
-- python -m otcore.mcp_server <graph>