图片转字符画
前言
学完python后,来找一些项目来提升一下自己,在知乎上看到了图片转字符画,觉得挺好玩的,自己来尝试一下。
知乎里挂了个链接,是实验楼,我并没看,自己写的,有兴趣的可以看看
1.准备
用python来操作图片要用到几个库,python3用PIL,在python2中他叫pillow, python3中只能用PIL,直接用pip命令就可以了下了
pip3 install PIL
2. 实验原理
-
按照实验楼的思路,是要将图片的RGB值按一定规律转化成灰度值,再对应到字符串上,转化规则如下:
gray=r*0.2126+b*0.7152+g*0.0722
同时还需要一个盛有很多字符串的一个数组,这样就可以将一个个像素点转化成一个个字符,然后输出到文本文件中,就显示出一个图片的形状
-
再说说我的思路,很简单,应用图片的alpha属性,alpha属性管着像素点的透明度,我们只需要找出不透明的点,然后输出字符,透明的地方输出空格,这样不就能把图片表示出来了吗?
3. 编程实现
话不多说,开始代码实现
from PIL import Image
def get_char(r,g,b,alpha=256):
print (r,g,b,alpha)
if r==255 and b==255 and g==255:
return ' '
else:
return '+'
pic=Image.open('Wm.png')
#print(pic.getpixel((70,80)))
w,h=pic.size
text=''
for i in range(0,h):
for j in range(0,w):
c=get_char(*pic.getpixel((j,i)))
text+=c
text+='\n'
print(text)
with open('pict.txt','w') as f:
f.write(text)
4. 结果
萌萌的哆唻a梦,不过变成字符后大太多了,看不全了.