Do tej pory używałem znaków do rysowania obrazów, kształtów itp. W terminalu.
Czy można narysować pojedynczy piksel?
Powiedzmy:
foo 1 1 red
Spowoduje to narysowanie czerwonego piksela na współrzędnej (1, 1)
.
Czy istnieje już aplikacja, która wykona tę pracę?
Aktualnie działający Ubuntu 14.04.
DEC GT40
byłby użyteczny, ale jest zbyt drogi ... :-)Odpowiedzi:
Terminale są wyświetlaczami komórek znakowych i nie obsługują rysowania grafiki pikselowej. Nawet gdy działa w X11; chociaż z pewnością możliwe jest rysowanie pojedynczych pikseli podczas rozmowy bezpośrednio z serwerem X, jeśli twój program rozmawia z terminalem, może jedynie poprosić terminal o wyświetlanie znaków.
Aby wyświetlić grafikę zamiast tekstu, musisz napisać program, który współdziała bezpośrednio z serwerem X. Zazwyczaj odbywa się to za pomocą biblioteki narzędzi interfejsu użytkownika, takich jak GTK , Qt lub wxWidgets .
źródło
xterm
lub osadzanie obrazówterminology
). Zauważ, że terminal odnosi się również do terminali X11 (następców takich jak Tektronix)Zajrzyj do biblioteki Drawille . Do rysowania pikseli używa znaków brajlowskich UTF.
źródło
Nie będziesz w stanie narysować kolorów jednego piksela w terminalu, chyba że będziesz w stanie zrobić to , o czym wspomniał Wyzard , sam go zaprogramować lub znaleźć narzędzie dla tego zadania (może to być specyficzne dla terminala). Możliwe jest jednak użycie współrzędnych poszczególnych znaków w terminalu do rysowania obrazów 2D przy użyciu znaków ASCII i UTF-8. Narzędzie do tego nazywa się
tput
. To narzędzie działa poprzez manipulowanie pozycją kursora zgodnie ze współrzędnymi bieżącego terminala. Oto przykładowa listatput
funkcjonalności:źródło
Oprócz głównych zestawów narzędzi widgetów (GTK, Qt, wxWidgets) wymienionych w odpowiedzi Wyzard za można również rozważyć bardziej zorientowane bibliotek multimedialnych, takich jak SFML lub libSDL . Jeśli chcesz tylko trochę graficznych wyników (prawie bez interakcji), możesz nawet rozważyć CairoGraphics .
W niektórych przypadkach możesz użyć, poprzez potok (np. Popen ) lub w wierszu poleceń, narzędzi poleceń, takich jak GNUplot lub GraphViz .
Możesz również rozważyć wykorzystanie możliwości graficznych przeglądarki, np. Kodując jakąś dedykowaną aplikację internetową (używając biblioteki serwera HTTP, takiej jak Wt lub libonion , z technologiami internetowymi, takimi jak AJAX, SVG, HTML5, canvas, websockets itp.)
Ale większość emulatorów terminali nie ma zdolności graficznych lub ma za mało zdolności (więc nie ma oryginalnej grafiki pikselowej). Praktycznie więc potrzebujesz swojego programu do interakcji z serwerem wyświetlania ( X11 , Wayland , ...).
źródło