Python中的文本转ASCII艺术生成器

9

我希望为我们的一位开发者的命令行工具添加复活节彩蛋,如果匹配了特定日期,该工具会向用户问候。基本上,我正在寻找以下内容:

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

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

有没有适用于这个的软件包?

致敬制作者.


你是如何生成这个示例的? - Kenan Banks
1
@Triptych:请看帖子底部的链接。 - Martijn Pieters
4个回答

12

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

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

虽然这需要将其移植到Python才能使用。我搜索了FIGlet Python库,并找到了这个:

https://github.com/pwaller/pyfiglet

我不确定它的工作效果如何,或者它实现了多少规范,但看起来非常完整。


4
我认为这个问题对于Stack Overflow来说有些偏题,但你可以尝试谷歌“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 ""

3

如前所述,您可以使用pyFiglet在Python中创建ASCII文本。

例如:

import pyfiglet

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

3

谢谢!这让我那些小的Python终端工具在启动时更加闪耀。 - jodles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接