您的位置:首页 > 编程语言 > Python开发

python将图片转换为字符画

2017-05-09 22:22 246 查看
前几天在B站看到了一个用C语言写的将小林家的龙女仆转化为字符画的视频,里面写着代码有6万多行,说实话,绝对不需要,几百行代码足够了,C语言我不清楚但是,在Python中只需要安装一个Pillow库,就可以把图片转为字符画了,视频的画就把视频分解一帧一帧的图片,然后文件读入图片转化为字符画,在输出就OK了,循环读入在输出就能显示动态的字符画了,下面演示我的一个例子,图片如下



转化代码如下:

#__author__ = 'chendiyang'
#-*- coding:utf-8 -*-

from PIL import Image

WIDTH=70 #宽度
HEIGHT=70 #高度

Ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #ASCII替换字符集

#将256灰度映射到70个字符上
def get_char(r,g,b,alpha=256):#alpha透明度
if alpha==0:
return ' '
length=len(Ascii_char)
gray=int(0.2126*r+0.7152*g+0.0722*b)#计算灰度
unit=(256.0+1)/length
return Ascii_char[int(gray/unit)]#不同的灰度对应着不同的字符
#通过灰度来区分色块

if __name__=='__main__':
im=Image.open('/home/chensir/下载/0321_7.jpeg')
im=im.resize((WIDTH,HEIGHT),Image.NEAREST)
txt=""
for i in range(HEIGHT):
for j in range(WIDTH):
txt+=get_char(*im.getpixel((j,i)))
txt+='\n'

print (txt)

with open("output.txt",'w') as f:
f.write(txt)



 转化的字符画如下:



这样大功告成了,类似别人做的BAD APPLE,龙女仆,根据这个原理都可以做出来的,有心人可以静下来做着试一试...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ascii 字符画 python