1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
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("[email protected]%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ")
def (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)
|
近期评论