python 图片转字符画
Posted littlebob
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 图片转字符画相关的知识,希望对你有一定的参考价值。
整代码:
将以下代码保存为py文件
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 = 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;:,\\"^`\'. ") # 将256灰度映射到70个字符上 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 = 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)
把要转成字符画的图片置于该文件的同级目录下
然后cmd打开命令行窗口
以上是关于python 图片转字符画的主要内容,如果未能解决你的问题,请参考以下文章