Swift 实现图片转字符画的功能
本文介绍一个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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |