首页 > 代码库 > python3实现图片转字符画
python3实现图片转字符画
用练习学习python3. #!/usr/bin/env python3 #-*- coding:utf-8 -*- from PIL import Image import argparse ‘‘‘ argparse模块使得编写用户友好的命令行接口非常容易。程序只需定义好它要求的参数,然后argparse将负责如何从sys.argv中解析出这些参数。argparse模块还会自动生成帮助和使用信息并且当用户赋给程序非法的参数时产生错误信息。 使用步骤: 1、导入模块 import argparse 2、创建一个解析对象 parser = argparse.ArgumentParser() 3、添加需要增加的参数,每一个add_argument方法对应一个你要关注的参数或选项 parser.add_argument() 4、最后调用parse_args()方法进行解析 parser.parse_args() ‘‘‘ #命令行输入参数 parser = argparse.ArgumentParser() #输入文件 parser.add_argument(‘file‘) #输出文件 parser.add_argument(‘-o‘,‘--output‘) #输出字符画宽 parser.add_argument(‘--width‘,type = int,default = 80) #输出字符画高 parser.add_argument(‘--height‘,type = int,default = 80) #获取参数 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;:,\"^`‘. ") #字符集可以根据字符画的效果反复调试,字符种类越多可以表现的颜色也越多,图片更有层次感。 ascii_char = list("************* ") #灰度值指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像 #灰度值公式有很多: gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) def get_char(r,g,b,alpha = 256): if alpha == 0: return ‘ ‘ length = len(ascii_char) #gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) gray = int(0.30 * r + 0.59 * g + 0.11 * 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‘ print(txt) if OUTPUT: with open(OUTPUT,‘w‘) as f: f.write(txt) else: with open("output.txt",‘w‘) as f: f.write(txt)
本文出自 “拔电源的运维空间” 博客,请务必保留此出处http://zhangdj.blog.51cto.com/9210512/1881006
python3实现图片转字符画
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。