图片转 ASCII 字符画
Semaphore 把图片变成可复制的纯文本字符画。全程在你的浏览器里完成:没有上传接口、没有账号、没有页面内统计脚本。生产环境 CSP 为 connect-src 'none',页面本身也无法对外发起网络请求。
六套字符集,按层级排列
引擎对每个网格单元算出一个感知亮度值,再挑出「墨量」最接近的字符。字符集决定了可选的字符表,也就决定了输出的质感。层级越多,能表达的灰阶越细;层级越少,越偏向轮廓而非明暗。
| 字符集 | 字符 | 层级 | 适合 | 兼容性 |
|---|---|---|---|---|
| braille | 2×4 点阵单元 | 9 级 · 256 种 | 细节最丰富。每格八个可独立点亮的点并做抖动,低列数下也能保住人脸结构。 | 需要字体含盲文字形。JetBrains Mono 没有,会回退到系统字体。 |
| detailed | .'`^",:;Il!i~+_-?][}{1)(|\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$ | 68 | 照片和人像。相邻两级差约 1.5%,颧骨这类过渡才不会糊掉。工具的默认值。 | 纯 7 位 ASCII,任何地方都安全。 |
| standard | .:-=+*#%@ | 10 | 最经典的字符画观感。当你无法控制目标字体时,这是最稳的选择。 | 纯 7 位 ASCII,任何地方都安全。 |
| blocks | ░▒▓█ | 5 | 像素画与海报风。每个字符填满整格,同亮度的区域会连成色块。 | Unicode 方块元素。多数终端支持,部分 README 渲染器会替换字体。 |
| minimal | .:*# | 5 | 小尺寸——图标、头像,以及约 60 列以下、长字符表会碎成噪点的场合。 | 纯 7 位 ASCII,任何地方都安全。 |
| binary | 01 | 3 | 剪影和「代码雨」观感。三级之下没有渐变可言,留下的是形状而非明暗。 | 纯 7 位 ASCII,任何地方都安全。 |
列数可在 40 至 240 之间调节,默认 120;亮度与对比度各为 -100 至 +100。等宽字符单元大约宽三份、高五份,所以方形图在 120 列下会输出 72 行——粘贴到度量不同的字体里会被拉伸,字符是对的,网格不是。
常见问题解答
Semaphore 会将我的图片上传到远程服务器吗?
绝对不会。Semaphore 转换全程运行在用户本地浏览器的 Canvas 引擎中,生产环境配置了强安全性策略 connect-src 'none',页面无法对外发起任何网络请求,零数据泄漏风险。
如何选择最适合的 ASCII 字符集?
人像与精细照片推荐 Detailed(68阶)或 Braille(盲文点阵,8倍细节);通用终端与代码注释推荐 Standard(经典10阶)或 Minimal(极简5阶);像素与海报推荐 Blocks(方块元素);极客终端与剪影推荐 Binary(01二值化)。
生成的字符画可以在哪些场景使用?
可直接一键复制纯文本或导出 .txt,嵌入 GitHub README 项目介绍、代码注释头、Linux 服务器 SSH 登录欢迎图(MOTD)、纯文本邮件或论坛聊天窗口;亦可导出高分辨率 CRT 终端风格 PNG 图片。
是否有命令行 (CLI) 版本可用?
有的。Semaphore 现已推出零依赖的官方 NPM 核心工具包与 CLI,您无需安装即可在终端中直接运行:npx semaphore-ascii <图片路径>。它完整内置了 Web 端的 6 套字符集与 2×4 盲文点阵抖动算法,支持终端彩色渲染、CRT 绿磷光效果与本地文件保存。