#代码来自 实验楼https://www.shiyanlou.com/courses/

#encoding=utf-8
#/usr/bin/env python
from PIL import Image
import argparse

parser = argparse.ArgumentParser()

parser.add_argument('file')
parser.add_argument('-o' , '--output')
parser.add_argument('--width', type=int , default=50)
parser.add_argument('--height' , type=int , default=50)

args = parser.parse_args()

IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output

 


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

def get_char(r ,b ,g , alpha=256):
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(IMG)
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'

if OUTPUT:
with open(OUTPUT , 'w') as f:
f.write(txt)

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

 

posted on 2016-03-06 13:15  zeopean  阅读(1061)  评论(0编辑  收藏  举报