刚刚自学python不久,发现实验楼上的python项目还蛮有趣的,决定开始尝试尝试
from PIL import Image
import argparse
'''
参数处理
'''
# 实例化argparse 对象
parse = argparse.ArgumentParser()
# 输入图片
parse.add_argument('file')
# 输出图片
parse.add_argument('-o', '--output')
# 输出图片 宽, 高
parse.add_argument('--width', type = int, default = 80)
parse.add_argument('--height', type = int, default = 80)
# 把参数列出来
arg = parse.parse_args()
# 用来代替颜色的字符
char_list = list('!"#$%&\'()*+-./0123Q567890:;<=>?@ABCDEFGHIJKLMNOP@RSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|} ')
'''
RGB转灰度
gray = 0.2126r + 0.7152g + 0.0722 b
'''
def rgb_gray(r, g, b, alpha = 255):
if alpha == 0:
return ' '
else :
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
x = int(gray * len(char_list) / 256)
# print(x)
return char_list[x]
# len(char_list) / alpha =
#
Img , Output , Width , Height = (arg.file , arg.output , arg.width, arg.height)
# print(Img, Output, Width, Height)
'''
对输入图片进行处理
'''
#
im = Image.open(Img)
# print(im.size)
# 重新定义图片大小
im = im.resize((Width, Height), Image.NEAREST)
txt = ''
for j in range(Height):
for i in range(Width):
txt += rgb_gray(*im.getpixel((i, j)))
txt += '\n'
# 输出到屏幕
print(txt)
# 保存到文件
if Output:
with open(Output, 'w') as f :
f.write(txt)
else :
with open("output.txt", 'w') as f:
f.write(txt)
突然发现没有IDE,根本写不了代码 < ^ _
网友评论