Text-to-ASCII art generator в Python


Я хотел бы добавить пасхальное яйцо в один из инструментов командной строки наших разработчиков, который будет приветствовать своего пользователя, если определенная дата совпадает. В основном, я ищу:

>>> print big_text("HappynBirthday")                                                                                   

   .                   _________   _...._    _________   _...._                    
 .'|                           |.'      '-.         |.'      '-. .-.          .- 
<  |                            .'```'.    '.        .'```'.    '.         / / 
 | |             __            |            \      |            \       / /  
 | | .'''-.   .:--.'.     |     |        |    | |     |        |    |      / /   
 | |/.'''.  / |    |    |            /    .  |            /    .      / /    
 |  /    | | `" __ | |    |     |`'-.-'   .'   |     |`'-.-'   .'      `  /     
 | |     | |  .'.''| |    |     | '-....-'`     |     | '-....-'`          /      
 | |     | | / /   | |_  .'     '.             .'     '.                 / /       
 | '.    | '. ._, '/'-----------'         '-----------'           |`-' /        
 '---'   '---'`--'  `"                    _______                     '..'         
/|        .--.                   .          ___ `'.                               
||        |__|                 .'|         ' |--.            .-.          .-     
||        .--..-,.--.      .| <  |         | |      '                   / /     
||  __    |  ||  .-. |   .' |_ | |         | |     |  '    __           / /      
||/'__ '. |  || |  | | .'     || | .'''-.  | |     |  | .:--.'.        / /       
|:/`  '. '|  || |  | |'--.  .-'| |/.'''.  | |     ' .'/ |    |      / /        
||     | ||  || |  '-    |  |  |  /    | | | |___.' /' `" __ | |     `  /         
||    / '|__|| |        |  |  | |     | |/_______.'/   .'.''| |       /          
|/'..' /     | |        |  '.'| |     | |_______|/   / /   | |_    / /           
'  `'-'`      |_|        |   / | '.    | '.             ._, '/|`-' /            
                         `'-'  '---'   '---'            `--'  `"  '..'             

Есть ли для этого пакет?

Кредит там, где должен быть кредит.

4 8

4 ответа:

Автор приложения TAAG, которое вы связали здесь. Большинство шрифтов в TAAG-это шрифты FIGlet (figlet.org FIGlet-это приложение для linux с командной строкой, но драйверы FIGlet написаны на нескольких языках. Я выпустил драйвер, который написал на JavaScript здесь:

Https://github.com/patorjk/figlet.js

Хотя это должно быть портировано на Python, чтобы работать. Я сделал поиск за помощью figlet библиотеки Python и нашел это:

Https://github.com/pwaller/pyfiglet

Я не уверен, насколько хорошо он работает, или сколько спецификаций он реализует, но он выглядит довольно полным.

Вот фрагмент кода из ActiveState примера баннера Python. http://code.activestate.com/recipes/577537-banner/

Я думаю, что этот вопрос немного не по теме для переполнения стека, но вы можете попробовать погуглить "ASCII art Python" и получить такие вещи, как: http://www.youtube.com/watch?v=NEWuZfTNoJE

или Вы можете попробовать сделать это сами, вот схема:

rows = 13 # Maximum height of character

# 0 is a , 1 is b and so on...
alphabeth = [[
r'''           ''',
r'''           ''',
r'''           ''',
r'''           ''',
r'''           ''',
r'''    __     ''',
r''' .:--.'.   ''',
r'''/ |   \ |  ''',
r'''`" __ | |  ''',
r''' .'.''| |  ''',
r'''/ /   | |_ ''',
r'''\ \._,\ '/ ''',
r''' `--'  `"  ''']]

text = raw_input('Enter text:\n')
c = map(lambda x: ord(x)-ord('a'),text)
for i in range(rows):
    for j in c:
        print alphabeth[j][i],
    print ""

Как уже упоминалось ранее, вы можете использовать pyFiglet для создания текста ascii в python.

Например:

import pyfiglet

result = pyfiglet.figlet_format("happy birthDay", font = "crazy")
print(result)