pythonpython图片转字符画
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pythonpython图片转字符画相关的知识,希望对你有一定的参考价值。
#知识: #1)pillow:对图像进行处理 #im = Image.open(IMG) 打开图像 #im.resize 设置图像大小 #Image.NEAREST 设置图像质量,最低质量 #im.getpixel 返回给定位置的像素值 #2)argparse:命令行参数处理:说白了就是定义脚本后面跟的参数,可以自动解析出来 ##创建解析对象 #parser = argparse.ArgumentParser() #add_argument:添加需要关注的命令行参数 #parser.add_argument(‘file‘) #输入文件 #args = parser.parse_args() #获取参数 #PIL使用的是pillow库,需安装;处理图像 from PIL import Image #系统自带,处理命令行参数 import argparse #创建解析对象 parser = argparse.ArgumentParser() #add_argument:添加需要关注的命令行参数 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("[email protected]%8&WM#*oahkbdpqwm") #将256个灰度映射到10个字符上 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) unit = (256.0+1)/length return ascii_char[int(gray/unit)] if __name__ == ‘__main__‘: #打开图像对象 #im.mode 图片模式 im.size 图片尺寸 im = Image.open(IMG) #resize:设置图像大小;Image.NEAREST:设置图像质量,最低质量 im = im.resize((WIDTH,HEIGHT),Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): #im.getpixel返回给定位置的像素值 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)
效果图
本文出自 “孔小发爱吃鱼” 博客,谢绝转载!
以上是关于pythonpython图片转字符画的主要内容,如果未能解决你的问题,请参考以下文章