Criando letreiros em ASCII art no Linux com TOIlet

Estava trabalhando em mais um dos meus projetos pessoais aleatórios (dessa vez um assistente virtual feat. chatbot, apelidado carinhosamente de Geraldo) e resolvi dar um toque meio retrô/cyberpunk no visual do programa acrescentando um pouco de ASCII art. Pra isso, utilizei duas ferramentas bem legais, o jp2a pra fazer a imagem do Geraldo (veja meu post sobre o jp2a aqui) e o toilet, pra fazer os letreiros.

Geraldo, o assistente camarada.

Hoje vou falar um pouquinho do TOIlet. Esse é um programa de linha de comando que converte um texto de entrada em um letreiro utilizando caracteres ASCII. O TOIlet, por sua vez utiliza recursos de um outro programa, chamado figlet. Para utilizá-lo, precisamos instalá-lo, junto com o figlet. No Debian/Ubuntu, basta digitar no terminal:

sudo apt-get install figlet toilet

A forma mais básica de utilizar o toilet é chamar o programa seguido de um texto (o $ não deve ser digitado).

$ toilet amador

#
mmm mmmmm mmm mmm# mmm m mm
" # # # # " # #" "# #" "# #" "
m"""# # # # m"""# # # # # #
"mm"# # # # "mm"# "#m## "#m#" #

Alterando a fonte do Toilet

Podemos utilizar um parâmetro -f para indicar o nome da fonte que desejamos utilizar:

$ figlet -f future amador programa
┏━┓┏┳┓┏━┓╺┳┓┏━┓┏━┓ ┏━┓┏━┓┏━┓┏━╸┏━┓┏━┓┏┳┓┏━┓
┣━┫┃┃┃┣━┫ ┃┃┃ ┃┣┳┛ ┣━┛┣┳┛┃ ┃┃╺┓┣┳┛┣━┫┃┃┃┣━┫
╹ ╹╹ ╹╹ ╹╺┻┛┗━┛╹┗╸ ╹ ╹┗╸┗━┛┗━┛╹┗╸╹ ╹╹ ╹╹ ╹

O toilet utiliza as fontes do figlet, que por padrão estão localizadas no diretório /usr/share/figlet. Para saber o nome de todas as fontes, basta dar um ls nesse diretório.

ls /usr/share/figlet
ascii12.tlf bigascii9.tlf circle.tlf future.tlf mono9.tlf smascii9.tlf smmono12.tlf ascii9.tlf bigmono12.tlf emboss2.tlf letter.tlf pagga.tlf smblock.tlf smmono9.tlf bigascii12.tlf bigmono9.tlf emboss.tlf mono12.tlf smascii12.tlf smbraille.tlf wideterm.tlf

Se você quiser visualizar todas as fontes disponíveis, você pode utilizar um laço for no shell, assim, por exemplo:

for filename in $(ls /usr/share/figlet/); do toilet -f ${filename%.tlf} ${filename%.tlf}; done

(Usei um ls no for ao invés de um glob por achar mais fácil do que cortar o endereço do arquivo da string)

Utilizando filtros do Toilet

Além de todas essas fontes, o toilet também possui alguns filtros para utilizar nas fontes. Para utilizá-los, devemos utilizar -F seguido do nome do filtro:

I

É possível passar uma lista de filtros, separados por dois pontos:

Para saber os nomes dos filtros disponíveis, basta utilizar list como argumento para o -F.

$ toilet -F list
Available filters:
"crop": crop unused blanks
"gay": add a rainbow colour effect
"metal": add a metallic colour effect
"flip": flip horizontally
"flop": flip vertically
"180": rotate 180 degrees
"left": rotate 90 degrees counterclockwise
"right": rotate 90 degrees clockwise
"border": surround text with a border

Salvando seu texto ASCII art

Pra salvar sua arte ASCII no computador, basta utilizar o redirecionamento de saída da shell, que funciona da forma programa > arquivo_de_saida. Por exemplo:

$ toilet -f pagga amadorprograma > foo.txt
$ cat foo.txt
░█▀█░█▄█░█▀█░█▀▄░█▀█░█▀▄░█▀█░█▀▄░█▀█░█▀▀░█▀▄░█▀█░█▄█░█▀█
░█▀█░█░█░█▀█░█░█░█░█░█▀▄░█▀▀░█▀▄░█░█░█░█░█▀▄░█▀█░█░█░█▀█
░▀░▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀░▀░░░▀░▀░▀▀▀░▀▀▀░▀░▀░▀░▀░▀░▀░▀░▀

Se você quiser utilizar sua arte ASCII em uma página web, você pode configurar a saída para código HTML definindo o parâmetro -E como html, da seguinte forma:

$ toilet -f pagga -E html amadorprograma > foo.html

O toilet é uma ferramenta bem divertida, para conhecer todos os recursos dela, vale a pena dar uma lida na página do manual (que deve ter sido instalada junto com ele) digitando man toilet no terminal.

Espero que tenha gostado do post e até a próxima. 😉

Related Posts

4 thoughts on “Criando letreiros em ASCII art no Linux com TOIlet

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *