ASCII Art—使用纯文本来显示图像:综述
1.什么是ascii art
Acii art是一种使用连续排列的ascii字符进行图形设计的技术。它可以显示在任意的文本框中。 ——维基百科.
简单的说,ascii art就是使用字符串表示图像的一种技术,我们日常说的字符画即是它的一种形式。从某种意义上来说,我们聊天中使用的颜文字也是一种ascii art。它的一个典型的例子如下图:
ascii art出现于上世纪70年代,最初是当时电脑显示技术不发达时用于显示简单图像的一种娱乐。后来逐渐流行开来,有了专门以此为兴趣的艺术家和研究者。去年底siggrah asia还专门开放了ascii art专场,涌现了许多对ascii art对研究和讨论,并促进着其他领域的发展。
随着网络技术的发展,ascii art对的外延也有所扩展。各种富文本格式的出现和、unicode字符集的广泛使用形成了许多新的艺术形式。但是在此我们讨论的还是原始意义上的ascii字符,即使用128个ascii字符集中的95个的(等宽)纯字符。
纯字符的意义在于它可以显示于任意环境中,并得到较为一致的效果。它的魅力在于用简单的东西,通过不简单的手段,造就令人惊叹的成果。
|\_/| **************************** (\_/)
/ @ @ \ * "Purrrfectly pleasant" * (='.'=)
( > º < ) * Poppy Prinz * (")_(")
`>>x<<´ * (pprinz@example.com) *
/ O \ ****************************
2.如何生成ascii art
ascii art是一种富有新意和趣味性的艺术活动。同时也一直有人探究自动生成它的方案。基于ascii art的不同分类。目前也有两个研究方向。其中基于像素灰度的生成方法已经比较通用和完善。但是基于字符本身特征的生成方法尚不能与人工生成的图像相比。
1)基于图像灰度的ascii图像生成方法(tone based method)
基于图像灰度的生成方法是比较具有通用性的一种方法。所谓通用性是指,输入任意一张图像,总能给出符合最优的ascii字符图像。下图是这种方法生成图像的一个例子:
顾名思义,这种方法的基本思想是使用不同的字符来代替不同灰度的像素点。对于较亮的像素点使用较小的字符,对于较暗的像素点使用较大的字符(事实上,在打印机刚出现的很长一段时间,都是使用类似的思想单色的喷墨来实现灰度图像的打印)。对这种方法对研究研究比较完善,网上可以下载到相关的转换工具,甚至还有人发现可以利用人眼与显示器的成像原理使用纯字符表现出颜色。
这种方法的实现较为简单,笔者将在下一篇文章中使用python对此种方法进行实现。
2)基于字符本身特征的图像生成方法(structure based)。
使用此种方法生成图像的例子如下: