首页 > 代码库 > [Python] IMG to Char
[Python] IMG to Char
Change image into character
from PIL import Image import argparse #输入 #命令行输入参数处理 parser = argparse.ArgumentParser() parser.add_argument(‘file‘) #position argument parser.add_argument(‘-o‘,‘--output‘) #optional argument and -o is a short option parser.add_argument(‘--width‘, type = int, default = 80) #optional argument 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;:,\"^`‘. ") #处理 #构建映射 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__‘: #When the Python interpreter reads a source file, it executes all of the code found in it. #in main program, __name__ = __main__ im = Image.open(IMG) im = im.resize((WIDTH,HEIGHT), Image.NEAREST) #Image.resize(size, resample=0) #Parameters: #size – The requested size in pixels, as a 2-tuple: (width, height). #resample – An optional resampling filter. This can be one of PIL.Image.NEAREST (use nearest neighbour), PIL.Image.BILINEAR (linear interpolation), PIL.Image.BICUBIC (cubic spline interpolation), or PIL.Image.LANCZOS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set PIL.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)
[Python] IMG to Char
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。