터미널 애플리케이션의 출력을 이미지로 변환하는 방법은 무엇입니까?

터미널 애플리케이션의 출력을 이미지로 변환하는 방법은 무엇입니까?

CLI 애플리케이션이 my_bin터미널에서 색상 텍스트, 유니코드 기호 및 이모티콘이 포함된 출력을 생성한다고 가정합니다.

Ubuntu에서 출력을 svg 또는 이미지로 변환하는 방법은 무엇입니까?

예를 들어 curl "v2.wttr.in/Berlin"터미널의 출력은 다음과 같습니다.

명령 출력

이미지 파일(예: 벡터 이미지 파일, png, svg 등)로 어떻게 변환합니까?

고쳐 쓰다:

  • 실제로 터미널 창에서 명령 출력을 렌더링할 필요가 없는 솔루션이 필요합니다. 따라서 뷰를 캡처하기 위해 X 또는 Wayland를 사용하지 않고 백그라운드에서 작동해야 합니다.

  • 이것을 시도했습니다 curl "v2.wttr.in/Berlin" | pbmtext | pnmtopng > out.png
    . 색상이나 이모티콘이 렌더링되지 않습니다.

  • 시도해 보세요. pango-view --font='mono' -qo out.png <(curl v2.wttr.in/Berlin)
    이모티콘은 렌더링되지만 색상에 대한 터미널 이스케이프 코드는 렌더링되지 않습니다.

답변1

wttr.in 저자가 여기에 있습니다.

첫째, wttr.in 출력을 그림으로만 변환하려는 경우, wttr.in 자체에 PNG 프런트엔드가 있으므로 작업은 간단합니다. 이를 사용하려면 .png쿼리 끝에 추가하면 됩니다.

wget v2.wttr.in/Berlin.png

터미널 출력을 PNG로 변환하려는 경우 작업은 더 복잡하며 해결 방법은 여러 요소에 따라 달라집니다.

  1. 색상 지원이 필요합니까?
  2. 그렇다면 몇 가지 색상을 지원해야 합니까? (ANSI 색상 코딩에는 여러 가지 방법이 있습니다)
  3. 이모티콘 지원이 필요합니까?
  4. 어떤 스크립트를 지원하고 싶나요? 그냥 라틴어인가요 아니면 그 이상인가요?
  5. 임베디드 터미널 그래픽 지원이 필요합니까?

간단한 경우, 여기에 있는 모든 질문에 대한 답은 다음과 같습니다.아니요, 매우 간단하고 이를 수행할 수 있는 프로그램이 많이 있습니다.

반대의 경우, 최대한 많은 지원을 제공하려는 경우 작업이 상당히 복잡해질 수 있습니다. wttr.in에 대한 이 작업을 해결하기 위해 저는 산스크리트어 및 아랍어와 같은 일부 복잡한 동양 스크립트를 제외하고 1, 2, 3 및 4를 지원하는 사용자 정의 렌더링 엔진을 작성했습니다. 그래픽 작업에는 PIL을 사용하고 가상 터미널 렌더링에는 pyte를 사용하여 Python으로 구현됩니다. wttr.in 소스 코드에서 찾을 수 있습니다:

https://github.com/chubin/wttr.in/blob/master/lib/fmt/png.py

관련 정보