The best way to learn a programming language is to write a lot of code and read a lot of code.
左边是效果图,右边是原图
完成以上图片转换字符画我们需要以下的代码:
以上算实际运行的有35行代码,大家尽量自己输入,这样可以对代码更有“感觉”,如果想要原代码,可以回复“转字符画”进行下载。
图片转换字符画的重点
字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符可以理解为表现一种颜色,字符的种类越多,可以表现的颜色也越多,图片也会更有层次感。
要转换一张彩色的图片,我们先理解一个概念-灰度值。
灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图。
所以使用灰度值公式将像素的 RGB 值映射到灰度值:
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
也就是RGB值转字符的函数
上述使用环境:
python2.7
Window10 命令提示符
使用方法:
将程序文件下载放置在你想要下载的地方(我把它们放在桌面上的一个命名为test的文件夹中);
将你要转换的图片放置在test文件夹中;
运行命令提示符,输入cd,然后拖动test文件到后面(注意空格);
回车进入test文件目录;
输入python test.py 1.jpg(注意空格);
回车后在命令提示符界面,你会看到如下字符画(版面有限,只截了一半);
回到test文件夹中,你可以看到一个output.txt文件;
打开output.txt,就可看到结果了。
注意:
不同的环境中显示的效果可能不尽相同,终端显示的字体是不是等宽字体,终端显示的行高和行宽,输入输出的图像宽高等等,这些都会影响显示效果。
另外,字符画所使用的字符集,一共有 70 个字符,也就是下面这行代码:
字符的种类与数量越多,表现的颜色也就越多,字符画的层次感也会更好,可以自己根据字符画的效果反复调试。
下载目录中还有几副画,现在就去尝试一下吧!^_^
END
领取专属 10元无门槛券
私享最新 技术干货