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

时间:2012-07-08 13:19:31

标签: python ascii-art

我想在我们的开发人员的命令行工具中添加一个复活节彩蛋,如果匹配某个日期,它将向用户致意。基本上,我在寻找:

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

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

是否有包装?

Credit where credit is due

4 个答案:

答案 0 :(得分:10)

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

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

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

https://github.com/pwaller/pyfiglet

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

答案 1 :(得分:3)

以下是来自Python Banner示例的ActiveState的代码段。 http://code.activestate.com/recipes/577537-banner/

答案 2 :(得分:2)

我认为这个问题对于Stack Overflow来说有点偏僻,但你可以试着谷歌“ASCII艺术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 :(得分:1)

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

例如:

rev