#代码来自 实验楼https://www.shiyanlou.com/courses/

#encoding=utf-8
#/usr/bin/env python
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=50)
parser.add_argument('--height' , type=int , default=50)

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 ,b ,g , 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'

if OUTPUT:
with open(OUTPUT , 'w') as f:
f.write(txt)

else:
with open('output.txt','w') as f:
f.write(txt)

 

相关文章:

  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2021-08-30
  • 2022-01-09
  • 2021-11-20
  • 2021-11-20
  • 2021-09-18
猜你喜欢
  • 2021-11-09
  • 2021-06-17
  • 2021-06-04
  • 2021-10-21
  • 2022-02-09
  • 2022-02-09
  • 2021-09-18
相关资源
相似解决方案