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


10

지금까지 나는 문자를 사용하여 터미널에 이미지, 모양 등을 그렸습니다.

단일 픽셀을 그릴 수 있습니까?

의 말을하자:

foo 1 1 red

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

이 작업을 수행 할 기존 응용 프로그램이 있습니까?

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


3
어떤 종류의 터미널이 있습니까? 12월 GT40 ?
Anthon

@Anthon Gnome-Terminal (Ubuntu와 함께 제공)
Ionică Bizău

1
@Anthon A DEC GT40는 유용하지만 너무 비싸다 ... :-)
Ionică Bizău

1
@terdon 본질적으로 프로그래밍 질문이 아니기 때문에 다시 열기로 투표했습니다 ( c 또는 c ++ 태그를 제거했습니다 .C 또는 C ++ 코드를 작성하려는 경우 여기서는 주제가 아닙니다 ). “이러한 기능이 없으므로 프로그램을 작성해야합니다”는 잘못된 답변을 제외하고는 여기에 정답이 될 것입니다. 좋은 답변은 Tektronix를 언급하고 w3m처럼 터미널 창을 그립니다.
Gilles 'SO- 악한 중지'

1
@Gilles는 충분히 재개했습니다. SO로 마이그레이션하는 과정에 있었으므로 환영하지 않았습니다.
terdon

답변:


10

터미널은 문자 셀 디스플레이 이며 픽셀 그래픽 그리기를 지원하지 않습니다. X11에서 실행될 때조차도; X 서버와 직접 통신 할 때 개별 픽셀을 그릴 수는 있지만 프로그램이 터미널과 통신하는 경우 터미널에만 문자를 표시하도록 요청할 수 있습니다.

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


7
모든 종류의 터미널이 있으며, 일부는 그래픽 기능을 xterm갖습니다 (예 : Tektronix 모드 또는 이미지 삽입 terminology). 참고 단말은 또한 X11 단자 (텍트로닉스 것과 같은 것들의 후계자)을 의미한다
스테판 Chazelas가

2
멋있는! 일부 애호가들은 xterm에서 3D 주전자를 그립니다 =) dim13.org/2009/02/teapot
gena2x

터미널이 문자를 "그리기"만 할 수 있다면, 그 문자를 그릴 수 있도록 픽셀을 문자로 만들어야합니다.


1

Wyzard가 언급 한 내용을 수행 하거나 직접 프로그래밍하거나 이미 작업을 위해 만든 도구를 찾을 수 없다면 터미널에서 단일 픽셀 색상을 그릴 수 없습니다 (터미널에 따라 다를 수 있음). 그러나 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

1

Wyzard의 답변에 언급 된 주요 위젯 툴킷 (GTK, Qt, WxWidgets) 외에도 SFML 또는 libSDL 과 같은 더 많은 미디어 지향 라이브러리를 고려할 수 있습니다 . 거의 상호 작용이없는 그래픽 출력을 원한다면 CairoGraphics를 고려할 수도 있습니다 .

파이프 (예 : popen ) 또는 명령 행에서 GNUplot 또는 GraphViz 와 같은 명령 유틸리티를 사용하는 경우도 있습니다 .

브라우저의 그래픽 기능 사용을 고려할 수도 있습니다 (예 : 일부 전용 웹 애플리케이션 코딩 ( AJAX, SVG, HTML5, 캔버스, 웹 소켓 등의 웹 기술을 사용하여 Wt 또는 libonion 과 같은 일부 HTTP 서버 라이브러리 사용 ))

그러나 대부분의 터미널 에뮬레이터에는 그래픽 기능이 없거나 너무 적으므로 정품 픽셀 그래픽이 없습니다. 따라서 디스플레이 서버 ( X11 , Wayland 등) 와 상호 작용하려면 실제로 프로그램이 필요합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.