在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文介绍一个IOS APP , 将图片转换成ASCII字符画,使用Swift语言编写。 举个例子,我们使用著名的蕾娜照片作为原图片 经APP转换后形成的字符画,我们打印出来,效果如下: 放大她的脸部可以看到图像都是字符串组成的! 项目地址: https://github.com/ijoshsmith/swift-ascii-art 字符画原理图像中的每个像素都对应到一个ASCII值,在这里显示为一个字符。 图像中的每个像素都会被转换成一个中间值,如下所示: 让我们一步步来分析。
算法实现AsciiArtist类实现了图像到字符画的转换,参考下图中的 31到 33行. AsciiArtist 对象依赖Pixel和 AsciiPalette类, 我们等下分析。 像素转换为灰度颜色Pixel 类代表图像中的一个像素颜色,一个颜色有4个byte组成,
转换灰度颜色到ASCII字符AsciiArtist类中的symbolFromIntensity 方法可以转换一个灰度颜色为一个ASCII字符, 那么问题是:我们要把哪些ASCII字符放在数组里,按什么样的顺序排列呢? 设计不良的字符数组,会输出不清晰的ASCII字符图: 一个良好的字符数组,会生成非常清晰的效果: 我的目标是设计一个好的字符数组,使电脑可以绘制出清晰的字符图。 AsciiPalette 类初始化需要一个 UIFont 对象作为参数, 因为选择不同的字体,字符的呈现效果不同,这会影响字符周围有多少白色像素。 源码地址: https://github.com/ijoshsmith/swift-ascii-art
文/阳春面(简书作者)
原文链接:http://www.jianshu.com/p/19d609c79ee5 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 |
请发表评论