지금까지 나는 문자를 사용하여 터미널에 이미지, 모양 등을 그렸습니다.
단일 픽셀을 그릴 수 있습니까?
의 말을하자:
foo 1 1 red
좌표에 빨간색 픽셀이 그려 (1, 1)
집니다.
이 작업을 수행 할 기존 응용 프로그램이 있습니까?
현재 우분투 14.04를 실행 중입니다.
DEC GT40
는 유용하지만 너무 비싸다 ... :-)
지금까지 나는 문자를 사용하여 터미널에 이미지, 모양 등을 그렸습니다.
단일 픽셀을 그릴 수 있습니까?
의 말을하자:
foo 1 1 red
좌표에 빨간색 픽셀이 그려 (1, 1)
집니다.
이 작업을 수행 할 기존 응용 프로그램이 있습니까?
현재 우분투 14.04를 실행 중입니다.
DEC GT40
는 유용하지만 너무 비싸다 ... :-)
답변:
터미널은 문자 셀 디스플레이 이며 픽셀 그래픽 그리기를 지원하지 않습니다. X11에서 실행될 때조차도; X 서버와 직접 통신 할 때 개별 픽셀을 그릴 수는 있지만 프로그램이 터미널과 통신하는 경우 터미널에만 문자를 표시하도록 요청할 수 있습니다.
텍스트 대신 그래픽을 표시하려면 X 서버와 직접 상호 작용하는 프로그램을 작성해야합니다. 이는 일반적으로 GTK , Qt 또는 wxWidgets 와 같은 UI 툴킷 라이브러리를 통해 수행됩니다 .
xterm
갖습니다 (예 : Tektronix 모드 또는 이미지 삽입 terminology
). 참고 단말은 또한 X11 단자 (텍트로닉스 것과 같은 것들의 후계자)을 의미한다
Drawille 라이브러리를 살펴보십시오 . UTF 점자 문자를 사용하여 픽셀을 그립니다.
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
Wyzard의 답변에 언급 된 주요 위젯 툴킷 (GTK, Qt, WxWidgets) 외에도 SFML 또는 libSDL 과 같은 더 많은 미디어 지향 라이브러리를 고려할 수 있습니다 . 거의 상호 작용이없는 그래픽 출력을 원한다면 CairoGraphics를 고려할 수도 있습니다 .
파이프 (예 : popen ) 또는 명령 행에서 GNUplot 또는 GraphViz 와 같은 명령 유틸리티를 사용하는 경우도 있습니다 .
브라우저의 그래픽 기능 사용을 고려할 수도 있습니다 (예 : 일부 전용 웹 애플리케이션 코딩 ( AJAX, SVG, HTML5, 캔버스, 웹 소켓 등의 웹 기술을 사용하여 Wt 또는 libonion 과 같은 일부 HTTP 서버 라이브러리 사용 ))
그러나 대부분의 터미널 에뮬레이터에는 그래픽 기능이 없거나 너무 적으므로 정품 픽셀 그래픽이 없습니다. 따라서 디스플레이 서버 ( X11 , Wayland 등) 와 상호 작용하려면 실제로 프로그램이 필요합니다 .