python小白的练习之路——python字符画
实现原理
我们知道每一幅画都是由一个个像素点组成,每个像素点都有一种颜色,每种颜色都可以由红、绿、蓝三种颜色组成,即所谓的RGB。
那么一个像素点的RGB如何对应一个字符呢?
这就不得不提及灰度值了。
灰度值指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,并且根据公式
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
可将灰度值与RGB联系起来。
那么现在每个像素点都对应一个灰度值了,再根据公式
gray / 256 = x / 70
得到每个像素点对应的字符(256是灰度值的范围,70是字符的个数)
x = gray * 70 / 256
最后再逐行打印即可
代码解析
from PIL import Image # PIL 是一个 Python 图像处理库
WIDTH = 60 # 字符画的宽
HEIGHT = 28 # 字符画的高
# 将256灰度映射到70个字符上,也就是RGB值转字符的函数:
def get_char(r