图片转字符画工具

在线把图片转换成由字符组成的黑白或彩色字符画,可调节字符密度和宽度,支持复制为文本或导出,纯本地处理。


工具介绍

图片转字符画工具可以将上传的图片转换为字符组成的文本画或彩色HTML字符画,支持调整输出宽度和对比度,适合制作个性文本头像、ASCII艺术等用途。

使用方法

  1. 点击「选择图片」上传一张需要转换的图片(支持JPG、PNG、GIF等常见格式)。
  2. 设置输出宽度(单位为字符个数,范围10-300,宽度越大字符画越清晰但文件越大)。
  3. 调整对比度,数值范围-100到100,可以改善明暗对比不明显的图片效果。
  4. 选择输出类型:纯文本输出适合复制到文本编辑器,彩色HTML输出保留原图颜色。
  5. 点击「生成字符画」即可查看结果,点击「复制结果」可以复制字符画内容。

转换原理

转换过程分为以下几个步骤:

  1. 图片缩放:将上传图片按指定宽度等比例缩放到Canvas画布,高度考虑字符宽高比做了补偿。
  2. 灰度计算:对每个像素计算灰度值,公式为:灰度 = 0.299×R + 0.587×G + 0.114×B
  3. 对比度调整:使用对比度公式调整像素灰度:
    新灰度 = ((259 × (对比度 + 255)) / (255 × (259 - 对比度))) × (原灰度 - 128) + 128
  4. 字符映射:按灰度从暗到亮映射到字符集@%#*+=-:. ,越暗的像素使用越复杂占空间大的字符,越亮的像素使用越简单的字符。
  5. 输出:纯文本输出直接输出多行字符,彩色HTML输出给每个字符保留原像素颜色,用HTML排版输出。

注意事项

为什么生成的字符画比例和原图不一样?

由于字符本身的宽高比大约是2:1(高度比宽度大),所以工具自动对高度做了减半处理。如果显示比例仍有偏差,可以在复制后调整目标编辑器的行高和字体大小。

彩色HTML输出有什么用?

彩色HTML输出保留了原图每个像素的颜色,可以直接复制到支持HTML的编辑器、网页、博客中使用,显示彩色的字符艺术效果。

可以调整字符集吗?

当前版本使用默认的经典字符集,从暗到亮为@%#*+=-:. ,可以适配绝大多数图片效果。后续版本可能会增加自定义字符集功能。

为什么我上传的大图片转换很慢?

宽度设置越大,需要处理的像素越多,转换时间越长。如果不需要特别大的字符画,建议宽度设置在80-150之间即可,平衡清晰度和转换速度。