Até agora eu usava caracteres para desenhar imagens, formas etc. em um terminal.
É possível desenhar um único pixel?
Digamos:
foo 1 1 red
Isso irá desenhar um pixel vermelho na coordenada (1, 1)
.
Existe um aplicativo existente que fará esse trabalho?
Atualmente executando o Ubuntu 14.04.
DEC GT40
seria útil, mas é muito caro ... :-)Respostas:
Os terminais são exibições de células de caracteres e não suportam desenhar gráficos de pixels. Nem mesmo quando rodando no X11; embora seja certamente possível desenhar pixels individuais ao conversar diretamente com um servidor X, se o seu programa estiver conversando com um terminal, ele poderá solicitar apenas que o terminal exiba caracteres.
Para exibir gráficos em vez de texto, você precisará escrever um programa que interaja diretamente com o servidor X. Isso geralmente é feito por meio de uma biblioteca do kit de ferramentas da interface do usuário, como GTK , Qt ou wxWidgets .
fonte
xterm
ou a incorporação de imagensterminology
). Note-se que o terminal também se refere aos terminais X11 (os sucessores de coisas como os Tektronix)Dê uma olhada na biblioteca Drawille . Ele usa os caracteres braille UTF para desenhar pixels.
fonte
Você não poderá desenhar cores de pixel único no terminal, a menos que possa fazer o que a Wyzard menciona, programar você mesmo ou encontrar uma ferramenta já feita para o trabalho (isso pode ser específico do terminal). No entanto, é possível usar coordenadas de caracteres individuais no seu terminal para desenhar imagens 2D usando caracteres ASCII e UTF-8. A ferramenta para isso é chamada
tput
. Essa ferramenta funciona manipulando a posição do cursor de acordo com as coordenadas do seu terminal atual. Aqui está uma lista de exemplo detput
funcionalidades:fonte
Além dos kits de ferramentas de widget principais (GTK, Qt, WxWidgets) mencionados na resposta de Wyzard, você também pode considerar bibliotecas mais orientadas à mídia, como SFML ou libSDL . Se você quer apenas uma saída gráfica (com quase nenhuma interação), pode até considerar o CairoGraphics .
Em alguns casos, você pode usar, através de um pipe (por exemplo, popen ) ou, na linha de comando, utilitários de comando como GNUplot ou GraphViz .
Você também pode considerar o uso das habilidades gráficas do seu navegador, por exemplo, codificando algum aplicativo da web dedicado (usando alguma biblioteca de servidores HTTP como Wt ou libonion , com tecnologias da web como AJAX, SVG, HTML5, canvas, websockets, etc ...)
Mas a maioria dos emuladores de terminal possui pouca ou nenhuma capacidade gráfica (portanto, nenhum gráfico de pixel genuíno). Portanto, você praticamente precisa do seu programa para interagir com o servidor de exibição ( X11 , Wayland , ...).
fonte