[Python] pyfiglet 으로 ASCII art 문자를 출력해 보기 Develop Tip


위의 그림처럼 터미널에서 무언가 큰 글자가 나오는 것과 같은 것을 본 경우가 있으실 겁니다.
또는 ASCII art 로 검색을 해 보시면,

위와 같은 이미지를 나타내거나,

사진 픽셀이 마치 터미널 화면에 나타나듯이 보이는 것도 있습니다.

그런데 글자 같은 경우 figlet 이라는 

아스키 문자를 큰 그래픽 문자처럼 보여주는 곳이 존재합니다.
(위에 예에서는 일본어도 보이는데 우선은 ASCII 위주로 생각합니다)

위의 figlet 을 파이썬으로 포팅해 놓은 것이 바로 pyfiglet 이라 합니다.
이제 파이썬에 확인을 해 봅니다.

$ pip install pyfiglet

으로 설치가능합니다.

그리고, test01.py 를 다음과 같이 만들어 놓고,

from pyfiglet import Figlet
f = Figlet(font='slant')
print(f.renderText('text to render'))

실행시켜보면,,

$ python test01.py
   __            __     __                               __
  / /____  _  __/ /_   / /_____     ________  ____  ____/ /__  _____
 / __/ _ \| |/_/ __/  / __/ __ \   / ___/ _ \/ __ \/ __  / _ \/ ___/
/ /_/  __/>  </ /_   / /_/ /_/ /  / /  /  __/ / / / /_/ /  __/ /
\__/\___/_/|_|\__/   \__/\____/  /_/   \___/_/ /_/\__,_/\___/_/

(웹 폰트에 따라 제대로 안 보일 수도 있습니다)

위와 같이 모듈로 이용할 수도 있고,

$ pyfiglet
Usage: pyfiglet [options] [text..]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -f FONT, --font=FONT  font to render with (default: standard)
  -D DIRECTION, --direction=DIRECTION
                        set direction text will be formatted in (default: auto)
  -j SIDE, --justify=SIDE
                        set justification, defaults to print direction
  -w COLS, --width=COLS
                        set terminal width for wrapping/justification (default: 80)
  -r, --reverse         shows mirror image of output text
  -F, --flip            flips rendered output text over
  -l, --list_fonts      show installed fonts list
  -i, --info_font       show font's information, use with -f FONT
  -L LOAD, --load=LOAD  load and install the specified font definition
  -c COLOR, --color=COLOR
                        prints text with passed foreground color,
                        --color=foreground:background                             --color=:background
                        # only background                             --color=foreground | foreground:     #
                        only foreground                             --color=list                         #
                        list all colors                             COLOR = list[COLOR] |
                        [0-255];[0-255];[0-255] (RGB)

pyfiglet 이라는 실행파일로 실행시킬 수도 있습니다.

다음과 같은 간단한 bash 파일을 만들어,

$ cat figlet.sh
#!/bin/bash

for f in $(pyfiglet -l);do
        echo "Font=$f"
        pyfiglet "Hello World? I'm Jerry" -w $(tput cols) -f $f
        echo ""
done

실행시켜 보면,

모든 가용한 폰트 (425개)에 대하여,

"Hello World? I'm Jerry" 를 출력하는데,
주어진 폰트로 (-f 폰트명), 현재 터미널의 컬럼길이를 이용하여 (-w $(tput cols)) 출력해 보는 것입니다.

해당 결과와 관련 소스는 이곳에 있습니다.
이렇게 좋은 자료를 또 이제야 알았습니다.


어느 분께는 도움이 되셨기를..

핑백

덧글

댓글 입력 영역

구글애드텍스트