文字 → ASCII 字符画
只认 ASCII:中文、日文、emoji 这类字符没有对应的 5×7 拉丁字模,本页签会自动提示并跳过,图片请改用「图片转 ASCII」。
ASCII 画输出
图片 → ASCII 字符画
点「选择图片」,或把图片文件拖到这块区域上,也可以在页面上直接按 Ctrl+V 粘贴截图。
输出参数
图片只在本页解码采样:不上传、不请求任何接口,关掉标签页就什么都没了。
ASCII 画输出
这是什么工具
ASCII 字符画生成器把两件事合在一页:一是「文字转 ASCII」——用内置的 5×7 点阵字模把 A–Z、0–9 和一批标点排成大号横幅(figlet 那种字符画),提供实心块、阴影、描边、点阵四种样式,填充与空白字符还能自己填;二是「图片转 ASCII」——把一张位图按灰度分档,用符号密度还原成字符画,宽度、纵向密度、亮度、对比度、反色都能调,还能开彩色输出直接在页面上看原图配色。
两件事都在你自己的浏览器完成:字模表随页面一次性下载,图片由浏览器解码后交给 canvas 采样,全程没有 fetch / XHR,没有后端接口,也不会把你的文字或图片上传到任何地方。生成的字符画可以直接复制、也可以下载成 .txt 贴进 README、注释、终端横幅。
功能
- 自带 5×7 点阵字模A–Z、0–9、空格与 30 个常见标点各有独立字模,小写字母自动复用大写;不引用第三方 figlet 库,也不需要联网下载字体文件。
- 四种样式 + 自定义字符实心块用整块方块,阴影在右下方补一层斜线,描边只画轮廓(笔画用 #、外缘用 .),点阵用 @ 与 . 表示有无;填充字符和空白字符都可以自己填,1× 到 4× 放大同时作用在横竖两个方向。
- 图片三种入口文件选择、拖放到区域上、在页面上按 Ctrl+V 粘贴截图都能进来;进来后先显示缩略图与原图尺寸、文件体积,再按当前参数出字符画,改参数即时重算。
- 三档字符集与灰度控制标准 10 级、简单 8 级、方块灰阶 4 级三档明暗到浅的取样序列,配合输出宽度(20–200 字符)、纵向密度(紧凑 / 标准 / 宽松)、亮度(-100…100)、对比度(0.2…3)与反色,把人脸、logo 这类细节拉回可读的范围。
- 彩色输出与纯文本导出打开彩色输出后,页面上每个字符按它对应像素的平均颜色着色,方便对着原图核对;复制与下载始终是单色纯文本,贴进代码注释或终端不会残留 HTML。
- 零依赖、纯静态、离线没有任何第三方运行时库,不请求接口、不上传图片;页面加载完成后即使断网,两个页签照常工作。
怎么用
- 做横幅:在第一个页签输入英文单词或数字,选样式、放大倍数,需要换个字符就改填充/空白字符,点「生成字符画」。
- 转图片:切到第二个页签,选一张图或把它拖进来(也可以 Ctrl+V 粘贴),先确认缩略图和尺寸没问题。
- 调参数:输出宽度决定字符画有多宽;人脸被拉变形就调纵向密度;整体发暗就加亮度、细节糊就加对比度;想要白底黑字的观感就勾反色。
- 核对效果可以打开彩色输出,但要放进代码或终端时用「复制」或「下载 .txt」,拿到的是不含颜色的纯文本。
- 想批量试不同宽度,就改宽度滑块——每次改动都会立刻按当前参数重算,不用重新选图。
技术参数与数据来源
文字页签:字模为本站自绘的 5×7 点阵表(window.ASCII_FONT_5X7),覆盖 A–Z(含小写复用)、0–9、空格与 ! ? . , : ; ' " - + / ( ) [ ] # % & * @ = < > $ ^ _ | ~ ` \;每个字符占 5 列外加 1 列间隔,7 行高;阴影样式在右下方各偏移一格补斜线,描边样式按四邻域做边缘检测(笔画 #、外缘 .)。图片页签:输出宽度 20–200 字符,纵向密度 1.0 / 2.0 / 3.0(单元格高度 = 单元格宽度 × 密度),亮度 -100…100(对归一化亮度整体平移,±100 会分别压成全亮与全暗并在 0…1 处截断),对比度 0.2…3(绕 0.5 中点缩放后截断);灰度按 Rec. 709 加权 L = 0.2126R + 0.7152G + 0.0722B,带透明通道的像素先按白色合成。三档取样序列由深到浅,字面分别是:「标准 10 级」@%#*+=-:.(9 个符号 + 末尾一个空格,共 10 档)、「简单 8 级」@#*+=-:.(8 个符号 + 末尾一个空格,共 9 档)、「方块灰阶 4 级」█▓▒░(4 档,最亮一档仍是 ░ 而不是空白,白底占比高时勾反色更省纸)。亮度值 v 落在第 floor(v × 档数) 档,两端截断。
图片体积上限 30 MB,任一边的像素尺寸超过 4096 会先等比缩到 4096 再采样(大图的解码与逐像素平均都在这一份缩放后的位图上进行,用 willReadFrequently 的离屏 canvas)。所有处理 100% 在你自己的浏览器完成:没有 fetch / XHR、没有上传、没有服务端记录,图片数据从不离开这台设备——这也是它和多数在线字符画工具最大的区别,证件照、内部 logo 这类素材可以放心试。字模与取样序列都是本仓库里的静态数据,改动随构建一起发布。
常见问题
- 为什么输入中文不给横幅,只提示一句?
- 第一个页签靠 5×7 拉丁点阵字模拼字,一个汉字要占的宽度与笔画密度远超这个网格,用这套字模排不出可读的结果。所以检测到非 ASCII 字符时会直接说明并跳过,不再请求任何数据。想把汉字做成字符画,走「图片转 ASCII」:先把字写成图片(截图、导出图都行),再按灰度采样。
- 「方块灰阶」用的 █▓▒░ 不是 ASCII,算不算名不副实?
- 确实不是纯 7 位 ASCII:那是 Unicode 的区块元素(U+2588 / U+2593 / U+2592 / U+2591),本工具如实把它标成「方块灰阶」。它的层次最细腻,代价是终端、纯文本编辑器和部分代码注释可能显示不出来或宽度不一致;要贴进这些场合就选「标准 10 级」或「简单 8 级」,那两档才是纯 ASCII。
- 纵向密度是什么?为什么人脸会被拉长?
- 等宽字体里一个字符的格子大约「高是宽的两倍」,如果按正方形网格取样,图会被横向拉扁或纵向拉长。本工具默认按 2.0 计算单元格高度(单元格高度 = 单元格宽度 × 密度),也就是说竖向每格的取样范围是横向的两倍,出来的字符画比例才和原图一致。「紧凑 1.0」行数翻倍、细节更多但会被拉长,「宽松 3.0」更矮更概括,按原图的观感选一档即可。
- 彩色输出好看,为什么复制下来没有颜色?
- 彩色只是给页面上的每个字符套了一个前景色(用 DOM 节点写文本,不拼接 HTML 字符串),而复制与下载导出的一直是同一份单色纯文本:字符画常见用途是代码注释、README、终端横幅,那些场合本身不认颜色,带 HTML 反而坏掉。想要颜色效果就截图,或者在原图上下方对照看。
- 会不会把图片传到服务器上?断网还能用吗?
- 不会。图片由浏览器的 Image + canvas 解码采样,文字转换只查页面自带的字模表,全过程没有任何网络请求,服务器上也看不到你输入了什么。页面加载完成后断网,两个页签都能继续用(除了页面顶部的广告位会空着)。
站内其他工具
纯前端实现 · 零依赖 · 免费 · 支持中/繁/英