图片转 ASCII 字符画 把图片像素转成字符序列,可调字符梯度、输出尺寸、是否带颜色。本地处理不上传图片。仅 PC 端使用。
核心算法:
80×40 等)0.3R + 0.59G + 0.11B,人眼感知加权)@#%*... 暗到亮)字符梯度选择:
| 梯度 | 字符示例 | 效果 |
|---|---|---|
| 10 级(粗) | @%#*+=-:. | 艺术感强、抽象 |
| 70+ 级(细) | $@B%8&WM#*o... | 灰度还原好、密集 |
| 自定义 | 任意 | 风格化(如全 emoji、全数字) |
输出格式:
适合 / 不适合:
预处理提升效果:先在图片编辑软件里加大对比度、降饱和度(转灰度),再做 ASCII 转换,效果远好于直接转原图。
基于亮度映射——把图片每个像素的亮度(grayscale 0-255)映射到一个 ASCII 字符。深色像素 → 笔画密集字符(`@#%`),浅色 → 笔画稀疏(`. ,`)或空格。常用字符梯度:"`@%#*+=-:. `"(10 级)或更细的 "`$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,"^`. `"(70+ 级)。
两个维度——字符梯度数:用 10 级简单字符(`@#%*+=-:. `)颗粒粗、艺术感强;用 70+ 级精细字符灰度还原好但花。字符密度(行列数):行 50×80 列适合微缩,行 200×400 列接近原画。经验:发头像 80×40、终端 banner 120×30、艺术作品 200×100+。
用 ANSI escape 颜色码(终端用)或 HTML span(网页用)给每个字符加色——既保留字符的形状感,又有原图的色彩。支持的渠道:现代终端(iTerm2、Windows Terminal)支持 24-bit truecolor;老终端只支持 16/256 色,会有色偏。导出格式:`.txt`(黑白)、`.ans`(终端色)、`.html`(网页色)。
字符不是正方形——多数等宽字体每个字符宽 ≈ 高的 1/2,所以 80 列 × 40 行的 ASCII 在屏幕上看起来是 80×80 像素的正方形画面。对策:把目标行数设为宽度的 1/2(80 宽 → 40 高);或用专门的"半角字符" 自动按比例缩放。本工具会自动按字体宽高比调整。
适合:高对比度、简洁主体、明暗分明(人物剪影、Logo、卡通形象、单色图标)。不适合:复杂细节(风景照、人脸特写)、低对比度(雾景、夜景)、彩色丰富(彩虹画)。预处理建议:先用 Photoshop/工具加大对比度、降饱和度(变灰度),再转 ASCII,效果远好于直接转。
算二次创作——以原图为基础生成,版权归属看原图。商业使用前确认原图版权(自摄/自绘 / CC0 自由)。纯字符设计(不基于具体图片,原创字符画)则归创作者本人所有。