图片转字符画

图片转字符画

前言

学完python后,来找一些项目来提升一下自己,在知乎上看到了图片转字符画,觉得挺好玩的,自己来尝试一下。

知乎里挂了个链接,是实验楼,我并没看,自己写的,有兴趣的可以看看

1.准备

用python来操作图片要用到几个库,python3用PIL,在python2中他叫pillow, python3中只能用PIL,直接用pip命令就可以了下了

pip3 install PIL

2. 实验原理

  1. 按照实验楼的思路,是要将图片的RGB值按一定规律转化成灰度值,再对应到字符串上,转化规则如下:

    gray=r*0.2126+b*0.7152+g*0.0722
    

    同时还需要一个盛有很多字符串的一个数组,这样就可以将一个个像素点转化成一个个字符,然后输出到文本文件中,就显示出一个图片的形状

  2. 再说说我的思路,很简单,应用图片的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梦,不过变成字符后大太多了,看不全了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值