터미널에서 단일 픽셀을 그리는 방법은 무엇입니까?

터미널에서 단일 픽셀을 그리는 방법은 무엇입니까?

지금까지 터미널에서 캐릭터를 사용하여 이미지, 도형 등을 그려왔습니다.

단일 픽셀을 그리는 것이 가능합니까?

예를 들어:

foo 1 1 red

그러면 좌표에 빨간색 픽셀이 그려집니다 (1, 1).

이 작업을 수행할 수 있는 기존 애플리케이션이 있습니까?

현재 우분투 14.04를 실행 중입니다.

답변1

보세요델라베르 도서관. UTF 점자 문자를 사용하여 픽셀을 그립니다.

다음과 같은 방법으로 픽셀을 설정합니다.

from drawille import Canvas

c = Canvas()

c.set(10, 10)

print(c.frame())

답변2

터미널에는문자 단위 표시그리고 픽셀 그래픽 그리기를 지원하지 않습니다. X11에서 실행하는 경우에도 X 서버와 직접 통신할 때 개별 픽셀을 그리는 것이 확실히 가능하지만 프로그램은 터미널과 통신하는 경우에만 터미널에 문자를 표시하도록 요청할 수 있습니다.

텍스트 대신 그래픽을 표시하려면 X 서버와 직접 상호 작용하는 프로그램을 작성해야 합니다. 이는 일반적으로 UI 툴킷 라이브러리를 통해 수행됩니다.GTK,Qt, 또는wx위젯.

답변3

다음을 수행할 수 없으면 터미널에 개별 픽셀 색상을 그릴 수 없습니다.마법사의언급하거나 직접 프로그래밍하거나 해당 작업을 위해 이미 만들어진 도구를 찾으십시오(이는 터미널에 따라 다를 수 있음). 그러나 터미널에서 단일 문자 좌표를 사용하면 ASCII 및 UTF-8 문자를 사용하여 2D 이미지를 그릴 수 있습니다. 이 목적으로 사용되는 도구 tput는 현재 터미널의 좌표를 기준으로 커서 위치를 조작하여 작동합니다. 다음은 기능적 예의 목록입니다 tput.

# tput Cursor Movement Capabilities:

tput cup Y X
    # Move cursor to screen location X,Y (top left is 0,0)

tput sc
    # Save the cursor position

tput rc
    # Restore the cursor position

tput lines
    # Output the number of lines of the terminal

tput cols
    # Output the number of columns of the terminal

tput cub N
    # Move N characters left

tput cuf N
    # Move N characters right

tput cuu N
    # up N lines

tput cud N
    # down N lines

답변4

예. 터미널 환경에서 픽셀/이벤트 개입을 위한 기존 하위 수준 API 지원은 없습니다.

하지만,이 프로젝트: wttr.in특별한 참고 사항: 다음 명령을 시도해보고 직접 확인해 보세요!

curl "wttr.in?format=v2"
curl wttr.in


결론

  • 터미널 애플리케이션에서 실행되는 명령의 출력은 정의된 문자 집합이 있는 문자 스트림을 반환합니다.
  • characters -> pixels글꼴 구성, ANSI 시퀀스 및 기타 응용 프로그램별 설정을 통해 터미널의 직사각형에 표시됩니다 .
  • 유니코드 문자와 이모티콘 시퀀스를 포함한 문자 세트를 영리하게 탐색하세요. 예술적으로 움직일 수 있는 공간도 있습니다.
# Check the raw output as well.
curl "wttr.in?format=v2" > weather-raw.txt

관련 정보