字符画的原理与制作

发布于 2017-11-26  8,514 次阅读


(终于想起来还有这么一篇文章想写)

字符画的出现很早,当时图像显示技术受设备运算能力的限制只能通过字符来表现,通常用于当文字比图像更稳定和更快显示的场合。现在已经有很多网站可以通过用户上传的图片在线生成字符画了。

我之前初学Python的时候,第二个project便是一个本地字符画生成器,可以由用户选定的图片生成一个txt格式的字符画。

这个小程序的流程图如下。

思路也很简单,通过像素的灰度来映射出ASCII字符。灰度值越大,所映射的ASCII字符占的单位面积越大,也就是看起来越黑。

(例如某点的灰度是0,那么对应的字符就是空格;类似的,灰度为255时,对应的字符就是“$”)

实际操作起来会遇到的问题就是:

  • 图片太大,输出后的文本即使使用最小字体也看不全
  • ASCII字符不是方形像素(长宽比不是1:1)

处理方法就是对图片的大小数据进行处理(而不是原图修改)然后映射。

总体上来说制作字符画还是比较简单的,需要处理的情况没有那么多。最后当然是惯例性地放出程序的下载链接和源文件了。

新世界的大门

使用方法:

双击exe选择图片,成功生成后会自动打开记事本格式的字符画,关闭后程序自动退出。输出文件和exe文件在同一个文件夹,文件名为“output-'图片的原文件名'.txt”。建议使用高对比度的图片。

实例:


终有一日, 仰望星空