← 返回科研导航

ASCII 字符画生成器

文字横幅 · 图片转字符画 · 纯本地转换

English 简体 繁體

文字 → ASCII 字符画

×1

只认 ASCII:中文、日文、emoji 这类字符没有对应的 5×7 拉丁字模,本页签会自动提示并跳过,图片请改用「图片转 ASCII」。

ASCII 画输出


        
      

这是什么工具

ASCII 字符画生成器把两件事合在一页:一是「文字转 ASCII」——用内置的 5×7 点阵字模把 A–Z、0–9 和一批标点排成大号横幅(figlet 那种字符画),提供实心块、阴影、描边、点阵四种样式,填充与空白字符还能自己填;二是「图片转 ASCII」——把一张位图按灰度分档,用符号密度还原成字符画,宽度、纵向密度、亮度、对比度、反色都能调,还能开彩色输出直接在页面上看原图配色。

两件事都在你自己的浏览器完成:字模表随页面一次性下载,图片由浏览器解码后交给 canvas 采样,全程没有 fetch / XHR,没有后端接口,也不会把你的文字或图片上传到任何地方。生成的字符画可以直接复制、也可以下载成 .txt 贴进 README、注释、终端横幅。

功能

怎么用

  1. 做横幅:在第一个页签输入英文单词或数字,选样式、放大倍数,需要换个字符就改填充/空白字符,点「生成字符画」。
  2. 转图片:切到第二个页签,选一张图或把它拖进来(也可以 Ctrl+V 粘贴),先确认缩略图和尺寸没问题。
  3. 调参数:输出宽度决定字符画有多宽;人脸被拉变形就调纵向密度;整体发暗就加亮度、细节糊就加对比度;想要白底黑字的观感就勾反色。
  4. 核对效果可以打开彩色输出,但要放进代码或终端时用「复制」或「下载 .txt」,拿到的是不含颜色的纯文本。
  5. 想批量试不同宽度,就改宽度滑块——每次改动都会立刻按当前参数重算,不用重新选图。

技术参数与数据来源

文字页签:字模为本站自绘的 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 解码采样,文字转换只查页面自带的字模表,全过程没有任何网络请求,服务器上也看不到你输入了什么。页面加载完成后断网,两个页签都能继续用(除了页面顶部的广告位会空着)。

站内其他工具

纯前端实现 · 零依赖 · 免费 · 支持中/繁/英