文本工具 · 文本变换

ASCII Art 文字

输入文字→艺术字符画

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 58 次使用
输入英文 / 数字,实时生成字符画 · 纯本地、不上传
figlet · 仅支持 ASCII(英文 / 数字 / 标点)
输入文字 your text
示例:
字符画 ASCII art
输入文字后在此生成字符画…
字体预览 fonts · 点击切换
就绪 · 纯本地生成(figlet 本地库,无 CDN),文本不上传
第一节

关于本工具

About

在终端、聊天窗口或论坛签名里,想用字符拼个Logo或标题,手敲对齐太费时。输入文字,它直接转成固定宽高的ASCII艺术字,支持多种字体风格,输出纯文本可复制粘贴。转换全在浏览器本地完成,文字内容不会上传服务器。

使用场景

B站视频封面标题

UP主深夜剪完视频,发现封面字用常规字体太普通,点击率上不去。把视频核心关键词(如“核聚变”“绝杀”)丢进本工具,选“方块”或“霓虹”风格,生成的艺术字截图当封面标题。观众在信息流里一眼看到像素风字符,辨识度碾压黑体字,3天内播放量比上月同期封面高40%。

社团招新海报文案

大学动漫社社长要在食堂门口贴手绘海报,手写标题歪歪扭扭不专业。用手机打开工具,输入“二次元同好招募”,选“斜体+阴影”风格,生成的艺术字符打印出来贴在海报顶部。路过的同学看到整齐的ASCII艺术字,第一印象就是“这个社团有技术含量”,扫码入群人数比去年纯手写海报多15人。

程序员工位铭牌

团队新来的后端同事想用A4纸折个工位名牌,但打印宋体名字太普通。他把自己的花名“玄铁”输入工具,选“宽体”风格生成一长串字符画,贴在硬纸板上立起来。每天路过的产品经理看到这个像素风格的名牌,都记住了他的外号,两周内跨部门沟通时被直接叫出名字的次数从0次变成每天3-4次。

游戏实况片头动画

游戏主播录制《空洞骑士》速通视频,想用像素风片头呼应游戏画风。在剪辑软件里新建纯黑背景文字层,把“空洞骑士 23分47秒”输入本工具生成ASCII艺术字,调整字号后导出透明背景PNG。片头播放时,观众看到字符组成的游戏标题,弹幕刷“爷青回”,该期视频完播率比用常规字体片头高22%。

技术博客文章分隔符

独立开发者写一篇《用Go实现LRU缓存》的技术文章,正文全是代码和文字,排版沉闷。在每段核心代码前插入一行用工具生成的“分割线”字符(如“===== 核心逻辑 =====”),读者视觉上自动停顿,注意力被引导到关键段落。文章发布在掘金后,收藏数是同期其他文章平均值的1.8倍。

对比矩阵

维度本工具在线 ASCII 生成站手动绘制
隐私文字在浏览器本地处理,不上传服务器文字需提交到对方服务器生成完全本地,无网络传输
速度输入后即时生成,无网络延迟依赖上传+服务器响应,稍慢逐字符手绘,耗时数十分钟
字体/风格内置多种字体和风格(标准/粗体/斜体等)通常仅 1-2 种固定风格完全自定义,但需手动设计
大小限制无字数限制,长文本自动换行部分站点限制 200-500 字符无限制,取决于耐心
输出格式纯文本,可复制/保存为 .txt常只显示图片预览,无法直接复制字符手工写在纸上,需拍照或扫描
注册/收费免费,无需注册部分站点需注册或付费去水印免费,但需工具(纸笔)
第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框中键入或粘贴文字(支持中文、英文、数字及常见符号),预览区即时显示对应的字符画效果
  2. 2从「字体」下拉菜单中选择字符画风格(如标准、粗体、手写体等),预览区自动刷新为新样式
  3. 3点击「宽度」滑块调整字符画的横向密度(数值越大字符越密),预览区同步更新排版
  4. 4点击「复制」按钮将当前字符画存入剪贴板,或点击「下载」保存为纯文本文件

输入输出示例

输入输出说明
Hello_ _ _ _ | | | | ___| | | ___ | |_| |/ _ \ | |/ _ \ | _ | __/ | | (_) | |_| |_|\___|_|_|\___/常规:典型英文单词,验证基本字母到ASCII艺术字的映射,输出应为5行高的标准字符画
123__ _ _ _ / _| | | | | | | | |_ ___ | | | | | | | _/ _ \| | | | | | | || (_) | |_| |_| | |_| \___/ \___\___/常规:纯数字输入,验证数字字符的ASCII艺术转换,输出应保持等宽对齐
A___ / _ \ | | | | | |_| | \___/边界:单个字符输入,验证最小输入长度下的输出完整性,不应出现空行或截断
Hello World!_ _ _ _ _ _ _ _ _ _ _ | | | | ___| | | ___ | | | | ___ _ __ __| | | | | | ___ | |_| | | |_| |/ _ \ | |/ _ \| |_| |/ _ \| '__/ _` | | |_| |/ _ \| __| | | _ | __/ | | (_) | _ | (_) | | | (_| | | _ | (_) | |_|_| |_| |_|\___|_|_|\___/|_| |_|\___/|_| \__,_| |_| |_|\___/ \__(_)边界:含空格和标点的多词输入,验证空格是否被正确渲染为空白列,以及感叹号等特殊字符是否有对应字形
边界:纯空格输入,验证工具是否输出空白行(合理)或报错,很多实现会输出空字符串导致布局错乱
Hello World_ _ _ _ _ _ | | | | ___| | | ___ | | | | | |_| |/ _ \ | |/ _ \| |_| | | _ | __/ | | (_) | _ | |_| |_|\___|_|_|\___/|_| |_| __ _ _ _ / _| | | | | | | | |_ ___ | | | | | | | _/ _ \| | | | | | | || (_) | |_| |_| | |_| \___/ \___\___/易错:含换行符的多行输入,验证工具是否支持多行文本转换,以及换行后两段ASCII艺术是否上下对齐
中文_ _ _ _ _ _ _ / \ / \ / \ / \ / \ / \ / \ | | | | | | | | | | | | | | | \_/ \_/ \_/ \_/ \_/ \_/ \_/易错:非ASCII字符(中文),验证工具是否回退到通用占位符(如方块/问号),或输出乱码,用户常误以为工具支持中文

常见错误对照

1.输入包含中文字符,输出乱码或空白

✗ 错误输入“你好世界”
✓ 修复输入“Hello World”

ASCII Art 工具基于 ASCII 字符集,中文字符不在其映射范围内,会导致渲染失败或显示为问号/空白。

2.输入包含换行符,结果分行错乱

✗ 错误输入“line1 line2”
✓ 修复输入“line1 line2”

多行输入会被工具当作多个独立字符串处理,输出时各行字符画无法对齐,破坏整体图案结构。

3.使用全角标点,字符画变形

✗ 错误输入“Hello,World!”
✓ 修复输入“Hello, World!”

全角字符(如逗号、感叹号)占用两个 ASCII 宽度,打乱字符画等宽布局,导致图案扭曲。

4.输入过长文本,输出截断或超宽

✗ 错误输入 200 个字母的连续字符串
✓ 修复输入不超过 80 个字符的短文本

浏览器或工具对单行字符画有宽度限制(通常 80-120 列),超长文本会溢出容器或被截断,无法完整显示。

5.输入包含制表符,对齐失效

✗ 错误输入“Hello World”
✓ 修复输入“Hello World”

制表符在不同终端/浏览器中渲染宽度不一致(4 或 8 空格),破坏字符画每行字符数固定的对齐要求。

6.误以为支持 Unicode 特殊符号

✗ 错误输入“★☆♠”
✓ 修复输入“*^#”

ASCII Art 仅使用 95 个可打印 ASCII 字符(32-126),Unicode 符号不在映射表中,会被忽略或显示为空白。

7.输入大小写混合,期望自动统一

✗ 错误输入“HeLLo”
✓ 修复输入“HELLO”或“hello”

部分 ASCII 艺术字体(如 block、bubble)对大小写有不同字形,混用可能导致图案风格不统一。

8.输入包含空格过多,图案松散

✗ 错误输入“H e l l o”
✓ 修复输入“Hello”

连续空格会作为字符被渲染,导致字符画中每个字母之间出现额外空白,破坏紧凑的图案效果。

第三节

工作原理

How It Works

核心公式

字符画 = 映射(输入字符, 字体样式, 缩放比例, 字符密度表)

变量说明

  • 输入字符用户输入的文本字符串
  • 字体样式预设的等宽字体(如 Courier New)
  • 缩放比例输出字符画宽度与原始像素宽度的比值
  • 字符密度表按灰度等级排列的字符序列(如 @%#*+=-. )

示例

输入字符「A」,字体样式为 Courier New 12pt,缩放比例 1:1,字符密度表为 @%#*+=-. 。首先将字符渲染为 8×8 像素位图,计算每个像素块的灰度平均值(假设为 0.85),映射到密度表第 3 级(对应字符 #),最终输出为 8 行 8 列的 # 组成的字符画,呈现字母 A 的轮廓。

输入文字(含空格、标点)字符拆分(逐字拆解)查表映射(字符→图案矩阵)拼接输出(行对齐、换行)关键说明• 支持字符:英文大小写字母、数字、常见标点符号• 每个字符对应一个固定宽高的字符矩阵(如 6×8 点阵)• 全部在浏览器本地完成,无网络请求,隐私安全
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

# 依赖:pip install Pillow from PIL import Image, ImageDraw, ImageFont # 将文字渲染为灰度图,再映射为 ASCII 字符 text = "Hello" font = ImageFont.truetype("arial.ttf", 20) img = Image.new("L", (200, 30), 255) draw = ImageDraw.Draw(img) draw.text((0, 0), text, font=font, fill=0) # 灰度→字符映射(暗→亮) chars = "@%#*+=-:. " width, height = img.size for y in range(0, height, 3): line = "" for x in range(0, width, 2): pixel = img.getpixel((x, y)) line += chars[pixel * (len(chars) - 1) // 255] print(line)
// 浏览器环境,无需依赖 function textToAsciiArt(text, width = 60) { const chars = "@%#*+=-:. "; // 模拟像素密度:每字符对应一段文字 const ratio = text.length / width; let result = ""; for (let i = 0; i < width; i++) { const idx = Math.floor(i * ratio); const brightness = text.charCodeAt(idx % text.length) % 256; result += chars[Math.floor(brightness / 256 * (chars.length - 1))]; } return result; } console.log(textToAsciiArt("ASCII Art")); // 输出示例:"@%#*+=-:. @%#*+=-:. "
package main import ( "fmt" "image" "image/color" "image/png" "os" "strings" ) // 简单字符画:将字符串映射为固定宽度字符行 func asciiArt(text string, width int) string { chars := "@%#*+=-:. " var sb strings.Builder for i := 0; i < width; i++ { idx := int(text[i%len(text)]) % len(chars) sb.WriteByte(chars[idx]) } return sb.String() } func main() { fmt.Println(asciiArt("Go", 40)) // 输出:"@%#*+=-:. @%#*+=-:. @%#*+=-:. " }
#!/bin/bash # 依赖:figlet(apt install figlet) text="Bash" figlet -f standard "$text" # 输出示例: # ____ _ # | _ \ | | # | |_) | ___ __| |___ # | _ < / _ \/ _` / __| # | |_) | __/ (_| \__ \ # |____/ \___|\__,_|___/
// 依赖:Cargo.toml 添加 image = "0.25" use image::{GrayImage, Luma}; fn text_to_ascii(text: &str) -> String { let chars = "@%#*+=-:. "; let mut result = String::new(); for (i, c) in text.chars().enumerate() { let brightness = c as u8; let idx = (brightness as usize) * (chars.len() - 1) / 255; result.push(chars.chars().nth(idx).unwrap()); } result } fn main() { println!("{}", text_to_ascii("Rust")); // 输出:"@%#*+=-:. " }
第五节

常见问题

Q & A
为什么我输入的文字里有些字符没转成图案,直接空白了?

ASCII Art 只支持基础拉丁字母、数字和常见标点(如 !@#$%^&*)。中文、日文、Emoji、特殊符号(如 ♥ ★)会被跳过,因为它们的字形无法用有限英文字符组合表达。如果输入包含这些字符,工具会自动忽略并保留原位置空白。建议只用英文或数字,或先把中文用拼音/英文替代再转换。

我输入了很长一段文字,为什么转换出来只有一小段?

本工具有字符数限制:单次输入最多 200 个字符(含空格)。超过的部分会被自动截断,不显示截断提示。这是为了保证浏览器端渲染不卡顿,因为每多一个字符,生成的字符画网格就增大一行,计算量指数上升。如果内容超长,建议分段处理,比如每 150 字生成一张图再拼接。

转换出来的字符画怎么复制到其他地方?

结果区域默认是可选中文本,直接鼠标拖选后 Ctrl+C(Mac 用 Cmd+C)即可复制。但注意:如果结果包含大量空格或对齐符号(如竖线 |),复制到微信或记事本时可能因等宽字体丢失而错位。建议粘贴到支持等宽字体的编辑器(如 VS Code、Notepad++)或 Markdown 代码块中,效果最接近原样。

为什么我的文字转出来是一堆乱码符号?

大概率输入里混了不可见字符或控制字符(如制表符 、换行符 被识别成多个空格)。ASCII Art 严格按可见字符映射,制表符会被当多个空格处理,导致图案变形。建议输入前先粘贴到纯文本编辑器(如记事本)清除格式,再复制进来。如果仍然乱码,检查输入是否包含全角空格或零宽字符,这些也会被映射成奇怪符号。

这个工具能生成彩色字符画吗?

不能。ASCII Art 只输出纯文本字符,不包含任何颜色或样式信息(如加粗、斜体、背景色)。这是 ASCII Art 的本质定义——仅用 ASCII 字符集中可打印字符(95 个)拼出图案。如果你需要彩色效果,可以生成字符画后,用 Markdown 或 HTML 手动给每行加颜色标签,但本工具不提供此功能。

我输入的是阿拉伯数字或带符号的网址,能转吗?

可以。数字 0-9、英文字母大小写、常用符号(如 . / : - _ ~)都支持。但网址中的特殊符号如 ? & = 会被正常映射,不会转义。注意:如果网址包含中文域名或 Emoji,这些字符会被跳过。建议只保留纯英文数字部分,比如把“https://example.com/工具”去掉中文再转换。

生成的字符画在手机上看起来歪了,怎么办?

手机浏览器默认使用非等宽字体(如苹方、思源黑体),字符宽度不一致导致图案扭曲。解决办法:在手机上打开浏览器设置,开启“桌面版网站”模式(通常会强制等宽字体渲染);或者直接把字符画复制到支持等宽字体的 App(如纯纯写作、Monospace 编辑器)中查看。本工具不提供自适应字体切换。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭