아스키 아트로 만드는 LT 슬라이드

소개



여러분은 AA(아스키아트)로 LT를 해보고 싶은 적이 있습니까? 나는 있다. 그래서 이번에는 AA로 슬라이드를 만드는 방법을 설명하고 싶습니다.

하나하자.


  • Ubuntu 20.04(WSL)
  • kr2a (명령)
  • 슬라이드를 만들 수 있습니다Something
  • Windows Terminal(표시용)
  • Python 실행 환경
  • AA에서 LT를하고 싶다는 의미없는 의욕

  • 슬라이드 만들기



    원래 LT는 슬라이드가 필요합니다. Power Point 등의 슬라이드 작성 소프트웨어를 열어 임의의 슬라이드를 작성하십시오.

    작성한 슬라이드를 jpeg 형식으로 출력



    jp2a는 jpeg 이미지 밖에 아스키 아트로 변환 할 수 있다는 제약이 있으므로 jpeg 형식으로 슬라이드를 출력하고 새로 만든 디렉토리에 넣어 둡시다. 또, 슬라이드를 움직이기 위한 프로그램의 기술을 편하게 하기 위해서, 파일명을 일련번호(확장자 없음)로 합니다.

    jpeg로 저장된 슬라이드를 1에서 연속으로 이름 바꾸기

    ※디렉토리내의 파일이 모두 일련번호로 리네임됩니다
     ls | awk '{ printf "mv %s %d\n", $0, NR }' | sh
    

    시험에 jp2a를 사용해보기



    kr2a를 아직 설치하지 않은 경우 어떤 방법으로든 설치하십시오.
    sudo apt install jp2a
    

    kr2a 사용법
    jp2a test.jpeg
    

    24bit color 터미널 전체에 표시
    jp2a --color-depth=24 --term-zoom --clear test.jpeg
    

    Tux 너를 AA로 하면 이런 느낌이 듭니다


    슬라이드를 움직이기 위한 프로그램 만들기



    명령을 사용하여 아스키 아트를 생성하기 때문에 쉘 스크립트가 더 편할 것입니다.
    
    import subprocess
    import sys
    import tty
    import termios
    import os
    def getch():
    
       fd = sys.stdin.fileno()
       old = termios.tcgetattr(fd)
       try:
          tty.setraw(fd)
          return sys.stdin.read(1)
       finally:
          termios.tcsetattr(fd, termios.TCSADRAIN, old)
    
    # Unicode制御文字のエイリアス
    EOT = 3
    TAB = 9
    ESC = 27
    r = 114
    # コマンドの設定
    number = 1
    comand2 = ["jp2a", "--clear","--term-zoom","--color-depth=24","--chars=BBBZKXNWM","1"]
    # スライドの最大枚数
    counter = len(os.listdir()) -1
    subprocess.check_call(comand2)
    
    # メインループ
    while True:
       key = ord(getch())
       if key == EOT:
          break
       elif key == TAB:
          #END
          exit()
       elif key == r:
          #restart
          number = 1
          comand2[5] = str(number)
          subprocess.check_call(comand2)
       elif key == ESC:
          key = ord(getch())
          if key == ord('['):
             key = ord(getch())
             if key == ord('A'):
                #up key
                continue
             elif key == ord('B'):
                #down key
                continue
             elif key == ord('C'):
                #right key
                if number == counter:
                   continue
                number += 1
                comand2[5] = str(number)
                subprocess.check_call(comand2)
                continue
             elif key == ord('D'):
                #left key
                if number == 1:
                   continue
                number -= 1
                comand2[5] = str(number)
                subprocess.check_call(comand2)
                continue
    

    조작방법



    좌우 키로 조작할 수 있습니다. 어떤 명령을 추가하려면 상하 키에 추가하는 것이 좋습니다. 또한 r 키로 첫 번째 슬라이드로 돌아갈 수 있습니다. TAB 키를 누르면 종료됩니다.

    Windows Terminal을 사용하는 이유



    주로 개행 관련이 관련되어 있습니다. 원소 cmd.exe나 PowerShell을 사용했을 경우 개행 관련으로 표시할 수 있는 아스키 아트의 세밀함에 한계가 생겨 버립니다. Windows Terminal의 경우 문제가 발생하지 않으므로 권장됩니다.
    Windows Terminal의 문자 크기를 조정하고 이전 코드를 실행하면 이렇게됩니다.

    또한 jp2a를 Linux 명령으로 사용하는 이유는 왜 Windows 버전이라도 표시 속도가 상당히 저하되기 때문입니다.

    요약


  • jp2a는 jpeg 이미지 만 AA로 변환 할 수 있습니다
  • 슬라이드는 임의의 방법으로 쓰십시오.
  • 슬라이드는 화살표 키로 조작 할 수 있으면 편리합니다

  • 참고


  • Python3에서 십자 키가 입력되었다고 판단하는 방법
    htps : // m / t4t5 u / ms / 605 d611 c02716 3b98
  • 디렉토리내의 파일명을 정리해 변경(연번 부여)한다.
    htps : // m / 핥기 / ms / fc59849 7d497 a 7571 a
  • 좋은 웹페이지 즐겨찾기