#-*- coding:utf-8 -*-
#圖片轉字符畫
#Author Name;hanmeimei
from PIL import Image
#import argparse
ascii_char=list('abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&* ')
#將256灰度映射到70個字符上
def get_char(r,g,b,alpha=255):
if alpha==0:
return ' '
length=len(ascii_char)
gray=int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unit=255.0/length
return ascii_char[int(gray/unit)]
#定義圖片高度和寬度
hight=60
width=60
#調用Image,返回一個圖片對象
im=Image.open('D:/DingDang.png','r')
#重新定義圖片大小,並且從圖片中獲取最近的元素模忽略其他元素
im=im.resize((width,hight),Image.NEAREST)
#定義文本初始值
txt=''
for i in range(hight):
for j in range(width):
txt=txt + get_char(*im.getpixel((j,i))) #*im.getpixel((j,i))返回一個元組,拆分成4個參數
txt=txt+'\n'
print (txt)
#將結果輸出到文件
file=open('D:/foo1.txt','w')
file.write(txt)
輸出結果如下圖所示: