首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

8步使用Python搞定字符画的转换

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206G1D11F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com