图片工具 · 编辑变换

图片字符画

图片→ASCII 字符画/彩色字符

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 65 次使用
ASCII · 彩色字符 · 实时 · 本地
拖入 / 点击 / 粘贴一张图片

支持 JPG · PNG · WebP · GIF · BMP · 单张 ≤ 30MB
截图直接 CtrlV 粘贴

Converted locally — nothing uploaded
上传图片后,
这里实时显示字符画并可复制 / 导出
本地:采样、映射、渲染全部在浏览器 Canvas 完成,原图不离开本机,关闭页面即清空。彩色字符为每格取源像素色(HTML),单色 / 黑白可直接框选粘到任意聊天框。
就绪 · 拖入或粘贴图片开始
第一节

关于本工具

About

在终端或博客里贴一张图,发现它因格式被拒——把图片转成字符画,就能绕过几乎所有平台的图片限制。这个工具读取图片像素的明暗与色彩,映射为 ASCII 字符或带 ANSI 颜色的字符矩阵,输出纯文本或 HTML。转换全程在浏览器本地完成,不上传原图,适合需要在纯文本环境(如邮件、代码注释、GitHub README)里嵌入视觉内容的开发者与写作者。

使用场景

程序员调试终端

后端排查线上日志时,截图里的报错信息在纯黑背景的 iTerm2 里看不清。把截图拖进这个工具,输出 80 列宽的纯 ASCII 字符画,粘贴到 Slack 或飞书聊天框里,同事能直接复制字符去 grep,不用对着模糊的像素图猜。

博客封面图防爬

写了一篇技术教程,配了一张关键架构图。担心被爬虫直接抓走原图,把图转成黑白字符画后嵌入文章。爬虫只能抓到一堆无意义的 `@` 和 `#`,但读者在浏览器里能看清节点关系。本工具支持调节字符密度,能保留原图的结构轮廓。

极简主义头像生成

注册某个复古 BBS 论坛,要求头像文件不超过 2KB。自拍或 LOGO 压缩后全是马赛克。把原图缩小到 64×64 像素,用本工具输出 48 列字符画,粘贴到记事本存成 .txt,文件体积不到 1KB,上传后论坛自动渲染成等宽字体头像,辨识度反而比模糊的缩略图高。

印刷品上的二维码替代

制作一本纯文字版 Zine,印刷厂要求所有元素必须是单色矢量,不能有光栅图。把活动海报转成 120 列字符画,直接作为排版元素排进版面,打印机输出后远看是一块灰度纹理,近看能读出活动时间和地点。本工具支持导出纯文本,不产生任何图片文件。

第二节

使用指南

Getting Started

使用步骤

  1. 1上传或粘贴一张图片(支持 JPG/PNG/GIF),预览区立即显示原图缩略图
  2. 2在「字符密度」滑块上拖动(1–100),右侧字符画预览区同步刷新密度效果
  3. 3勾选「彩色字符」开关,字符画从单色切换为原图色彩映射,预览区即时更新
  4. 4点击「复制字符画」按钮,字符画文本自动存入剪贴板,按钮显示「已复制」反馈
  5. 5点击「下载为 TXT」按钮,浏览器自动下载包含字符画内容的 .txt 文件

输入输出示例

输入输出说明
一张纯白背景、居中黑色实心圆(直径 100px)的 200×200 PNG 图片(ASCII 字符画,白色区域用空格,黑色圆用 @ 字符填充,整体呈圆形轮廓)常规:高对比度简单图形,验证字符映射与空间定位是否准确
一张 800×600 的彩色风景照片(JPG,含天空、树木、水面)(彩色字符画,每个字符用对应像素的 ANSI 颜色渲染,天空区域用浅蓝字符,树木用深绿字符)常规:多色渐变场景,检验彩色字符的色值压缩与字符密度平衡
一张 1×1 像素的纯红色图片(PNG,RGB 255,0,0)(单个红色字符,如 '█' 或 '@',取决于字符集选择)边界:最小图片尺寸,验证极端缩放时是否崩溃或输出空
一张 5000×5000 像素的超大图片(PNG,文件 25MB)(工具提示:图片尺寸过大,建议缩小至 1000×1000 以内;或自动降采样后输出字符画)边界:超大输入,暴露工具的尺寸限制或降采样策略
一张完全透明的 PNG 图片(所有像素 alpha=0)(全部输出为空格,即空白字符画)边界:全透明图片,验证透明通道处理逻辑(是否当作黑色或跳过)
一张纯白色图片(RGB 255,255,255,200×200)(全部输出为空格,或极浅色字符如 '.',取决于字符集)易错:纯白背景,用户可能误以为工具未工作,实际是字符映射为空格
一张包含细线文字(2px 宽)的 100×100 灰度图(细线区域字符稀疏,可能断线或模糊,如 '|' 和 '-' 混合)易错:低分辨率细线条,暴露字符画对细节的保留能力不足

常见错误对照

1.上传图片分辨率过高导致字符画模糊

✗ 错误上传 4000×3000 像素的照片直接生成
✓ 修复先将图片缩放到 200×150 像素再上传

字符画每个字符对应一个像素块,原始分辨率过高时每个像素被压缩成单个字符,细节丢失,反而模糊。工具内部有自动缩放逻辑,但用户手动缩放可控制输出密度。

2.使用透明背景 PNG 导致字符画背景变黑

✗ 错误上传透明背景的 logo.png
✓ 修复先给图片填充白色背景(如 #FFFFFF)再上传

ASCII 字符画本质是纯文本,不支持透明通道。透明区域在转换时会被当作黑色(RGB 0,0,0),导致背景出现大量黑色字符。

3.彩色字符模式下忽略字符集选择

✗ 错误彩色字符画输出后全是 'M' 或 '@'
✓ 修复在彩色模式下选择「全字符集」或「宽字符集」

工具默认字符集为「窄字符集」(如 .:-=+*#%@),字符密度低,彩色模式下颜色信息丰富但形状单一。切换到全字符集可提升画面细节。

4.上传 GIF 动图但未勾选「逐帧处理」

✗ 错误上传一个 3 帧的 GIF,只得到第一帧的字符画
✓ 修复在高级选项中勾选「逐帧处理」

GIF 是多帧图像,工具默认只取第一帧。逐帧处理会为每帧生成字符画并组合成动画,但会显著增加生成时间。

5.用浅色图片生成黑白字符画时对比度不足

✗ 错误上传一张淡黄色背景的白色文字截图
✓ 修复先调整图片对比度(如用 PS 或在线工具拉高对比度至 80%)

黑白字符画依赖灰度值映射字符,低对比度图片的灰度值集中在窄区间,导致输出字符几乎全是 '.' 或 ' ',看不出内容。

6.复制字符画到微信/QQ 时格式错乱

✗ 错误直接 Ctrl+C 复制结果框中的文本
✓ 修复点击「复制纯文本」按钮,或先粘贴到记事本再复制到聊天窗口

结果框中的字符画使用等宽字体和空格对齐,微信/QQ 会压缩连续空格、改变字体,导致排版崩坏。纯文本按钮会保留原始空格。

7.上传带有水印/文字的复杂图片期望完美还原

✗ 错误上传一张布满半透明水印的产品图
✓ 修复先去除水印或使用纯色背景的简单图片

字符画的分辨率远低于原图(通常 100-200 字符宽),水印和主体叠加后字符无法区分前后景,输出会变成一团噪点。

8.在移动端查看字符画时未使用等宽字体

✗ 错误在手机浏览器默认字体下查看字符画
✓ 修复将浏览器字体设置为等宽字体(如 Courier New、Fira Code)

字符画的每个字符必须占据相同宽度,非等宽字体(如苹方、思源黑体)会导致字符宽度不一,画面扭曲。

第三节

工作原理

How It Works

核心公式

灰度值 = 0.299 × R + 0.587 × G + 0.114 × B

变量说明

  • R红色通道值,0–255
  • G绿色通道值,0–255
  • B蓝色通道值,0–255

示例

像素 RGB(120, 200, 80):灰度值 = 0.299×120 + 0.587×200 + 0.114×80 = 35.88 + 117.4 + 9.12 = 162.4,取整 162,映射到字符集(如 0–255 对应 70 级灰度字符表)输出字符 'M'。

上传图片像素采样(逐点读取亮度/色值)查表映射(亮度→字符灰度表)拼接字符矩阵(保持宽高比)着色渲染(原图色值→字符前景色)输出字符画
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
上传的图片有没有大小限制?太长的图会不会被截断?

本工具在浏览器本地运行,没有服务端文件大小限制,但受浏览器内存和手机性能影响。实测 1920×1080 的普通照片可以正常转换。如果图片像素数过高(比如 4000 万像素单反原图),建议先压缩到 2000 像素宽以内再上传,否则转换时浏览器可能卡顿或闪退。字符画的宽度默认按图片宽高比自动适配,不会主动截断图片内容。

图片里的文字能转成能看清的字符吗?

不能保证清晰可读。字符画本质是用 ASCII 字符模拟灰度/颜色,每个字符替代一个像素块,分辨率远低于原图。图片中的文字转成字符后通常只能看出大概形状轮廓,小字号文字会糊成一团。如果需要提取图片文字,应该用 OCR 工具,字符画不适合这个用途。

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

结果区域下方有「复制」按钮,点击后会把当前显示的字符画文本复制到剪贴板。注意:彩色字符画复制到记事本等纯文本环境会丢失颜色代码,只能看到黑白字符。如果要保留颜色效果,请粘贴到支持 ANSI 颜色码的终端或代码编辑器(如 VS Code)中。推荐直接截图保存效果。

为什么我上传透明背景的 PNG 转出来背景全是黑色或白色?

透明通道在字符画转换时会被丢弃。浏览器在处理图片时会把透明像素默认渲染为黑色(或白色,取决于浏览器实现)。本工具目前不单独处理 Alpha 通道,所以透明区域会变成纯色块。建议上传前先用图片编辑软件给透明 PNG 加一个纯色背景(比如白色或灰色),转换效果会干净很多。

彩色字符画和黑白字符画到底有什么区别?

黑白模式只用字符的疏密(比如 @%#*+ 等)模拟明暗,输出纯文本。彩色模式在字符基础上给每个字符加上前景色,能保留原图的颜色信息。彩色字符画更适合发到支持彩色文本的社交平台或论坛(如贴吧、Discord),但文件体积更大,复制粘贴后颜色可能丢失。黑白模式兼容性最好,任何地方都能显示。

转换出来的字符画太密了,看不清形状怎么办?

字符画默认密度是根据图片尺寸自动计算的。如果结果看起来密密麻麻、难以辨认轮廓,说明每个字符对应的像素块太小。可以尝试在工具界面上调低「字符密度」或「输出宽度」参数(如果有该选项),让每个字符覆盖更多像素,轮廓会更清晰。也可以上传分辨率更低一点的图片。

这个工具需要联网吗?上传的图片会不会被存到服务器?

完全不需要联网。本工具所有计算都在浏览器本地完成(实现方式为 FE),图片上传后不会离开你的电脑。转换过程不涉及任何网络请求,断网也能正常使用。图片数据只在内存中处理,关闭页面后自动释放,不会有隐私泄露风险。

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

选择 打开 +新窗口 esc关闭