照片转 ASCII 字符画:让效果更清晰的技巧
选择背景简单、对比强烈的照片,再根据粘贴的地方设置宽度。
图片转字符画工具把照片分成小格子,再用与亮度相符的字符填满每个格子。亮的格子用 @、# 等密集字符,暗的格子用 . 或空格。所以同一个工具,用哪张照片、怎么设置,结果会差别很大。
1. 挑选适合转换的照片
每个字符代表照片的一小块。设为 40 列时,整幅画每行只能用 40 个字符,细节会消失,只留下大的形状和明暗对比。
| 适合转换 | 不适合转换 |
|---|---|
| 纯色或简单的背景 | 物品很多的杂乱背景 |
| 主体占满画面 | 人物很小的合影 |
| 明暗区域分明 | 整体亮度差不多 |
| 人脸、宠物特写、Logo | 风景、带小字的截图 |
转换前先围绕主体裁剪照片,同样的宽度也会清楚得多。
2. 根据粘贴的地方设置宽度
宽度就是列数。列越多,保留的细节越多,但行也越长。行比聊天气泡或 GitHub 页面还长时会换行,图就乱了,所以先决定要粘贴到哪里。
| 粘贴到 | 建议宽度 |
|---|---|
| 聊天应用和 Discord | 40 到 60 列 |
| GitHub README 或代码注释 | 80 列左右 |
| 终端 | 80 到 120 列 |
| PNG 图片 | 90 列以上,越宽越像照片 |
用默认设置把示例小猫转成 40 列,效果如下。即使只有 40 列,耳朵、眼睛和身体也都看得出来。(用这组设置打开)
......------------------......
.....--**::::::::::::::**--.....
....----#%%*=::::::::=*%%#----.....
....---::%%%%%########%%%%%::---....
....---::+%%@@@@@@@@@@@@@%%%+::---....
....----::#@@@@@@@@@@@@@@@@@%#::----....
....---::#@@@%#*#%@@@@%#*#%@@%#::---....
....---:*%@@@*@.#*@@@@*%.%*@@%%*:---....
....----*%@@@##:##@@@@##:##@@%%*----....
....-++=%%@@@@@@@@%%@@@@@@@%%%=++-.....
...-===+#@@@@@@@@@%%@@@@@@@@@#+===-...
..-+:---:*%%@@@%@%%@%@@%%%*:---:+-..
.....-+*####%%%%%%%%%%####*+-.....
...+########################+...
*##########################*
3. 选择字符集
字符集是每一级亮度所使用的字符列表。
| 字符集 | 字符 | 最适合 |
|---|---|---|
| 标准 | . : - = + * # % @ |
几乎哪里都能用 |
| 方块 | ░ ▒ ▓ █ |
浓淡平滑、看起来扎实,非常适合 PNG |
| 精细 | 70 个字符 | 层次细腻,宽度较大时效果明显 |
| 二值 | # 和空格 |
只有剪影,适合 Logo 和简单形状 |
同一只小猫换成方块字符集是这样的。格子看起来像被涂满了,即使宽度较小,形状也很扎实。(用这组设置打开)
░░░░░░░░░░░░░░
░▒▒░░░░░░░░░░░░░░▒▒░
░░░▓▓▓▒░░░░░░░░░░▒▓▓▓░░░
░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░
░░░░░▓▓██████████████▓▓░░░░░
░░░░▓█████████████████▓▒░░░░
░░░░▓███▓▓▒▓▓████▓▓▒▓▓██▓▓░░░░
░░░▒████▒█ ▓▒████▒▓ ▓▒██▓▓▒░░░
░░▒▓███▓▒░▒▒████▒▒░▒▒██▓▓▒░░
░░░░▓██████████▓███████▓▓▓░░░░
░░░░░▓█████████▓▓█████████▓░░░░░
░▒░ ░░░▒▓▓███▓█▓▓█▓██▓▓▓▒░░░ ░▒░
░░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
在不使用等宽字体的应用中,方块字符的宽度可能不同,导致各行错位。以文字发到聊天应用时,标准字符集更稳妥。
4. 保持自动色调开启
自动色调会查看照片的亮度分布并相应拉开对比度,让转换器用上字符集中更多的层级。如果把它关掉,再降低对比度会怎样?
::::::============================::::::
::::=======**==============**=======::::
:::========*##*+========+*##*========:::
::=========#####********#####=========::
:=========+##################+=========:
:=========*#####%%%%%########*=========:
=========*####***#%%%##***####*=========
========*####*#=#*#%##*#:#*####*========
========*####**=**####**=**####*========
:=====+++######################+++=====:
::===++++*####################*++++====:
::===*=====*################*=====*===::
:::======+****###########*****+======:::
:::::==+************************+==:::::
::::::****************************::::::
背景几乎全是 = 和 :,小猫大多是 # 和 *,眼睛、鼻子等细节都糊了,因为亮度差被压缩到了少数几级。(用这组设置打开)
请保持自动色调开启,只在结果太暗或太亮时稍微调整亮度和对比度。如果形状仍然模糊,就提高轮廓强调。轮廓强调可用于“标准”和“精细”字符集。
5. 白色背景要反相
转换工具的结果框是深色背景。亮的区域用密集字符,所以在深色屏幕上看起来是对的。
如果粘贴到记事本或 GitHub 浅色主题这样的白色背景上,明暗看起来会像照片底片一样颠倒。要放到白色背景上,请在复制前打开反相。
6. 选择保存方式
| 你想要 | 按钮 |
|---|---|
| 粘贴字符 | 复制 |
| 存成文件或放进代码 | TXT |
| 原样发送形状 | PNG |
| 保留原始颜色 | 打开彩色后保存 PNG |
以文字复制时只保留字符,颜色会丢失。想保留颜色,请打开彩色并保存为 PNG。
照片在浏览器中转换,不会为了转换而发送到服务器。