Menu
广告

ASCII 字符画生成器

把图片和文字变成可分享的 ASCII 字符画。

作者 Nethanel Bar, Co-founder & CEO

最后更新

广告

准备好真正学会编程了吗?

Coddy 让你在浏览器里编写真实代码来学习:互动课程、即时反馈,卡住时还有 AI 帮忙。

ASCII 字符画生成器是什么?

ASCII 字符画生成器能把文字或图片变成完全由字母、数字和符号组成的图画。开发者用它来做终端横幅、README 标题、命令行工具的启动画面、日志装饰、复古聊天字符画,也会在开发命令行工具时纯粹拿来玩。

最常见的 ASCII 字符画有两种。文字横幅字符画用大号多行块状字体渲染一个词,也就是经典的 figlet 风格。图片转 ASCII 则把图片中像素的亮度映射成文本字符,只用键盘上的字符就能还原出原图的灰度效果。

ASCII 字符画本质上就是文本,所以能显示文本的地方都能用:终端输出、日志文件、GitHub README、Slack 消息,甚至源代码注释里。不需要图片,不需要渲染,也不会有失效的链接,特别适合无法使用图形的场合。

制作 ASCII 字符画时你会学到什么

  • 横幅字体有很多风格:方块、斜体、阴影、3D,每种都有独特的味道。
  • 图片转 ASCII 的原理是:对图片的小块区域采样亮度,再选择视觉密度相近的字符(@、#、*、.、 )。
  • 等宽渲染很重要。只有在每个字符宽度相同的字体里,ASCII 字符画才能正确对齐,比如终端、README 代码块和大多数编程字体。
  • 宽的字符画需要宽的显示区域。一个 120 列宽、在终端里看起来很棒的横幅,放进窄窄的 Markdown 栏里就会换行变形。

如何一步步生成 ASCII 字符画

  1. 选择文字模式或图片模式

    文字模式把一个词渲染成横幅字符画。图片模式把上传的图片渲染成灰度 ASCII 字符画。

  2. 选择字体(文字模式)

    浏览 figlet 风格的字体:Standard、斜体、大号、方块、阴影、3D。每种字体都会预览你输入的内容。

  3. 调整分辨率(图片模式)

    选择输出宽度(以字符计)和对比度。列数越多,细节越丰富,输出也越宽。

  4. 复制或下载

    把 ASCII 字符画复制到剪贴板,或下载为 .txt 文件。放进 README、横幅脚本或聊天消息里。

ASCII 字符画速查表

ASCII 字符画会出现在哪些地方,以及怎样让它显示正确。

使用场景推荐做法注意事项
终端横幅方块、大号或斜体字体宽度:大多数终端是 80 列
README 标题放在围栏代码块里在代码块之外,Markdown 会吞掉行首空白
命令行启动画面首次运行时打印颜色代码是单独的(ANSI 转义序列)
日志装饰简短标语,单行保持一眼可读,日志滚动很快
图片渲染黑白照片彩色照片会丢失信息,先转成灰度图
源代码注释分节分隔线小心使用 // 或 # 行前缀

可以试试的 ASCII 字符画示例

Standard 字体的横幅文字

输出

____ _ _ / ___|___ __| | __| |_ _ | | / _ \ / _ |/ _ | | | | | |__| (_) | (_| | (_| | |_| | \____\___/ \__,_|\__,_|\__, | |___/

Standard 字体是窄横幅最易读的选择:它能轻松放进 80 列,在等宽字体中显示得很清楚。

放进 README

Markdown
```  ____ _  / ___| || |   | || |___| | \____|_|```
# CLI v1.0

把横幅放在围栏代码块里,Markdown 就会原样保留空格。在代码块之外,行首空格会被吞掉。

在脚本中打印横幅

Python
BANNER = r"""   ____          _     _  / ___|___   __| | __| | | |   / _ \ / _` |/ _` | | |__| (_) | (_| | (_| |  \____\___/ \__,_|\__,_|"""
print(BANNER)print('Coddy CLI v1.0')

原始多行字符串会按字面保留反斜杠,字符画就不会被 Python 的转义规则弄乱。在 bash(用单引号)或其他支持字面字符串的语言里,也可以用同样的技巧。

耸肩和掀桌(直接复制)

复制

¯\_(ツ)_/¯ (╯°□°)╯︵ ┻━┻ ┬─┬ ノ( ゜-゜ノ)

经典的耸肩、掀桌和把桌子摆回去的颜文字。它们是单行文字画(严格来说是 Unicode,不是纯 ASCII),可以直接复制到聊天、提交信息或代码注释里。

猫和狗的 ASCII 字符画

猫

/\_/\ ( o.o ) > ^ <

狗

/ \__ ( @\___ / O / (_____/ /_____/ U

小动物字符画是被复制最多的一类 ASCII 字符画。它们只占几行注释,在任何等宽字体中都能正确显示。

爱心、星星和箭头

复制

<3 ♥ ❤ * ★ ☆ ✦ -> => → ⇒ »

适合聊天、README 和更新日志的简单符号画。左边的纯 ASCII 版本(<3、*、->)在哪里都能显示;右边的 Unicode 版本需要 UTF-8 支持。

ASCII 字符画的常见错误

  • 把 ASCII 字符画粘贴到比例字体(Times、Helvetica)里,然后奇怪为什么歪歪扭扭。请使用等宽字体。
  • 忘了 Markdown 在代码块之外会合并连续空格、删除行首空白。字符画一定要用 ``` 围栏包起来。
  • 选了比目标窗口更宽的字体。大多数终端是 80 列,更宽的内容会换行,把图案毁掉。
  • 把带反斜杠的横幅字符画直接写进普通字符串。请使用原始字符串字面量(r""" ... """),这样转义就不会被解释。
  • 图片转 ASCII 时分辨率太低。低于约 40 列时,连简单的形状都会认不出来。

ASCII 字符画常见问题

ASCII 字符画是什么?

ASCII 字符画是完全由字母、数字和标点组成的图画或横幅。因为它只是文本,所以在任何能显示文本的地方都能用:终端、README、日志文件、聊天消息。

图片转 ASCII 是怎么实现的?
图片被切分成由小格子组成的网格。计算每个格子的平均亮度,并映射到视觉密度相近的字符上:暗的格子用密集的字符(@、#、M),亮的格子用稀疏的字符(.、,、 )。
figlet 是什么?
FIGlet 是最早把文字渲染成 ASCII 横幅的 Unix 命令。大多数流行字体(Standard、Slant、Big、3D、Shadow)都出自它。在线 ASCII 生成器通常也带着同一套字体。
ASCII 字符画适合用在哪里?

终端横幅、命令行启动画面、README 标题、分节分隔线、复古聊天,以及任何想要装饰又不想用图片资源的地方。在严肃的面向用户的文案中最好避免,那里它只会增加干扰。

ASCII 字符画在所有地方都能正确显示吗?

它需要等宽字体和足够的水平空间。在 Markdown 代码围栏或终端里,效果完美。在比例字体中(聊天气泡、Word 文档),对齐就会乱掉。

怎样复制粘贴 ASCII 字符画?
选中字符画,复制,然后粘贴到需要的地方。但要粘贴到使用等宽字体的地方(终端、代码块、代码注释),否则各列会对不齐。在 Markdown 中,用围栏代码块(```)包起来,空格就会原样保留。上面很多示例都有复制按钮,可以帮你一键复制文本。
ASCII 字符画和 Unicode 文字画有什么区别?

真正的 ASCII 字符画只使用 128 个 ASCII 字符(字母、数字和基本标点),所以在几十年来的所有系统上显示效果都一样。Unicode 文字画,例如 ¯\_(ツ)_/¯ 这样的颜文字、制表符和 ♥ 这类符号,看起来更丰富,但需要 UTF-8 支持才能显示。想要最大的兼容性(老旧终端、纯文本日志),就坚持使用纯 ASCII。

怎样把图片转换成 ASCII 字符画?

把生成器切换到图片模式并上传一张图片。图片的每个小区域都会被采样亮度,并映射到密度相符的字符,生成文本形式的灰度图。高对比度、简单的图片(标志、剪影)转换效果最好;元素繁杂的彩色照片会丢失细节。增加输出宽度可以获得更多细节。

这个 ASCII 字符画生成器免费吗?

是的,完全免费,无需注册,而且一切都在你的浏览器本地运行,上传的图片不会离开你的设备。横幅和图片字符画想生成多少就生成多少,结果可以复制或下载。

了解更多

其他开发者工具

Coddy 编程语言插图

和 Coddy 一起学编程

开始