2012-07-08 21 views
8

Vorrei aggiungere un uovo di Pasqua a uno strumento da riga di comando dei nostri sviluppatori, che saluterà l'utente se una certa data è abbinata. Fondamentalmente, sto cercando:Generatore di arte text-to-ASCII in Python

>>> print big_text("Happy\nBirthday")                     

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

Esiste un pacchetto per questo?

Credit where credit is due.

+0

come hai generato l'esempio? – Triptych

+1

@Triptych: vedi il link in fondo al post? –

+0

related: [C'è una libreria python che permette di stampare facilmente testo ascii-art?] (Http://stackoverflow.com/q/9632995/4279) – jfs

risposta

10

Autore della app TAAG collegata qui. La maggior parte dei font in TAAG sono i font FIGlet (figlet.org). FIGlet è una app linux a riga di comando, ma i driver FIGlet sono stati scritti in diverse lingue. Ho rilasciato il driver che ho scritto in JavaScript qui:

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

Però che avrebbe bisogno di essere portato su Python per lavorare. Ho fatto una ricerca per le librerie Python FIGlet ed ho trovato questo:

https://github.com/pwaller/pyfiglet

Non sono sicuro di come funziona, o quanto delle specifiche implementa, ma sembra abbastanza completa.

2

Penso che questa questione è un po 'fuori tema per Stack   Overflow, ma si può provare a google "arte Python ASCII" e ottenere le cose come: http://www.youtube.com/watch?v=NEWuZfTNoJE

O si può provare a farlo da soli, ecco uno schema:

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 ""