До сих пор я использовал символы для рисования изображений, фигур и т. Д. В терминале.
Можно ли нарисовать один пиксель?
Скажем так:
foo 1 1 red
Это нарисует красный пиксель в координате (1, 1)
.
Существует ли существующее приложение, которое будет выполнять эту работу?
На данный момент работает Ubuntu 14.04.
DEC GT40
было бы полезно, но это слишком дорого ... :-)Ответы:
Терминалы являются дисплеями символьных ячеек и не поддерживают рисование пиксельной графики. Даже при работе в X11; хотя, конечно, можно рисовать отдельные пиксели при непосредственном общении с X-сервером, если ваша программа общается с терминалом, она может только попросить терминал отображать символы.
Чтобы отображать графику вместо текста, вам нужно написать программу, которая напрямую взаимодействует с X-сервером. Обычно это делается с помощью библиотеки инструментария пользовательского интерфейса, такой как GTK , Qt или wxWidgets .
источник
xterm
или встраивание изображенийterminology
). Обратите внимание, что терминал также относится к терминалам X11 (наследники таких вещей, как Tektronix)Взгляните на библиотеку Drawille . Он использует символы Брайля UTF для рисования пикселей.
источник
Вы не сможете рисовать однопиксельные цвета в терминале, если не сможете сделать то, о чем упоминает Вайзард , запрограммировать его самостоятельно или найти инструмент, уже созданный для этой работы (это может зависеть от терминала). Однако в вашем терминале можно использовать координаты отдельных символов для рисования 2D-изображений с использованием символов ASCII и UTF-8. Инструмент для этого называется
tput
. Этот инструмент работает, управляя положением курсора в соответствии с координатами вашего текущего терминала. Вот примерный списокtput
функций:источник
Кроме основных виджетов инструментариев (GTK, Qt, WxWidgets) , упомянутых в ответе Wyzard в вы также могли бы рассмотреть больше средств массовой информации , ориентированные библиотеки , как SFML или libSDL . Если вам нужен только графический вывод (практически без взаимодействия), вы можете даже рассмотреть CairoGraphics .
В некоторых случаях вы можете использовать, через канал (например, popen ) или в командной строке, такие командные утилиты, как GNUplot или GraphViz .
Вы могли бы также рассмотреть возможность использования графических возможностей вашего браузера, например , путем кодирования некоторые выделенный веб - приложение ( с помощью библиотеки HTTP - сервера , как Wt или libonion , с веб - технологий , таких как AJAX, SVG, HTML5, холст, WebSockets, и т.д ...)
Но большинство терминальных эмуляторов не имеют или слишком мало графических возможностей (поэтому нет подлинной пиксельной графики). Таким образом, вам практически нужна ваша программа для взаимодействия с сервером дисплея ( X11 , Wayland , ...).
источник