2012-07-08 38 views
8

我想为我们的开发人员的命令行工具添加一个复活节彩蛋,如果某个日期匹配,它将迎合其用户。基本上,我正在寻找:Python中的文本到ASCII艺术生成器

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

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

是否有包装?

Credit where credit is due

+0

你是怎么产生这个例子的? – Triptych 2012-07-08 13:31:15

+1

@Triptych:查看帖子底部的链接? – 2012-07-08 13:31:40

+0

相关:[是否有一个python库,可以轻松打印ascii艺术文字?](http://stackoverflow.com/q/9632995/4279) – jfs 2012-10-25 20:20:15

回答

10

您在此链接的TAAG应用程序的作者。 TAAG中的大多数字体都是FIGlet字体(figlet.org)。 FIGlet是一个命令行的Linux应用程序,但FIGlet驱动程序已用多种语言编写。我公布我在JavaScript中写到这里的司机:

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

虽然这将需要被移植到Python工作。我做了FIGlet Python库搜索,发现这个:

https://github.com/pwaller/pyfiglet

我不知道是否能正常工作,或有多少它实现了规范的,但它看起来相当完整。

2

我认为这个问题是有点过了堆栈 溢出的话题,但你可以尝试谷歌“ASCII艺术的Python”和得到的东西,如:http://www.youtube.com/watch?v=NEWuZfTNoJE

OR你可以尝试自己做,这里是一个大纲:

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