20 питона проекта - живопись картина поворота персонажа

Переход от лабораторного корпуса: https://www.shiyanlou.com/courses/370/learning/?id=1191

Код:

# - * - Coding:. UTF - 8 - * - 
от в PIL Импорт изображений
 Импорт argparse 

# Создание экземпляра ArgumentParser 
Parser = argparse.ArgumentParser () 

# определить входной файл, выходной файл, ширина выходного символа и высоту раздаточного 
parser.add_argument ( ' File ' ) # обязательные параметры. 1 
parser.add_argument ( ' -o ' ' --output ' )     # необязательный параметр 2 
parser.add_argument ( ' --width ' , = INT тип, по умолчанию = 80)   # необязательные параметры 3 
parser.add_argument ( ' --height' , = Тип Int, по умолчанию = 80) # необязательные параметры 4 

# синтаксического анализа и получить параметр 
арг = parser.parse_args () 

# путь к файлу входного изображения , чтобы 
в = IMG args.file 

# входного символа картины ширина 
ШИРИНА = args.width 

# Видео вход высота символов 
Height = args.height 

# путь вывод символы картина 
выходного = args.output 

# первых значений градации в значение RGB, а затем использовать значение серого отображаются на символ в списке символов 
ascii_char = список ( " $ @ B% 8 и ВМ # * oahkbdpqwmZO0QLCJUYXzcvunxrjft / \ | () 1 {} [] -_ + ~ <> I Lī;:.., \?!." ^ '' " ) 

DEF GET_CHAR (R & л, G, B, Alpha = 256 ):
     # Анализ альфа - значение 
    IF альфа ==0:
         Возвращение  '  ' 
    # Получить длину набора символов 
    длиной = LEN (ascii_char) 

    # значения RGB в серый, серый диапазон значений 0-255 
    Gray = INT (R & LT 0.2126 * 0.7152 * G + 0,0722 * + В) 

    # серый диапазон значений 0-255, но только 70 символов 
    # требует процесса до значения градации к развитой карте символов 
    UINT = (256,0 +. 1) / длиной 

    # значения градации возврата , соответствующие символам 
    возврата ascii_char [ Int (Серый / UINT)] 

ЕСЛИ  __name__ == ' __main__ ' :
     # открытым и регулировать ширину и высоту изображения 
    IM = Image.open (IMG) 
    IM = im.resize ((ширина, высота), Image.NEAREST) 

    #Выход инициализации строки 
    TXT = "" 

    # пересекать каждую линию на картинке 
    для ввода в диапазоне (высота):
         для J в диапазоне (ширина): 
            TXT + = GET_CHAR (* im.getpixel ((J, I)))
         # после того, как через каждую строку нужно добавить разрыв строки 
        TXT + = « \ n- » 
    # вывод на экран 
    Print (TXT) 

    # символ выхода картины в файл 
    IF выхода: 
        с Open (вывод, « W » ) AS F: 
            f.write (TXT ) 
    еще : 
        с Open ( " output.txt ", ' Ж ' ) , как F: 
            f.write (TXT)

Результат:

 

рекомендация

отwww.cnblogs.com/xuxiaowen1990/p/11239580.html