Jusqu'à présent, j'utilisais des caractères pour dessiner des images, des formes, etc. dans un terminal.
Est-il possible de dessiner un seul pixel?
Disons:
foo 1 1 red
Cela dessinera un pixel rouge à la coordonnée (1, 1)
.
Existe-t-il une application existante qui fera ce travail?
Actuellement sous Ubuntu 14.04.
DEC GT40
serait utile, mais c'est trop cher ... :-)Réponses:
Les terminaux sont des affichages à cellules de caractères et ne prennent pas en charge le dessin de graphiques en pixels. Pas même lors de l'exécution dans X11; bien qu'il soit certainement possible de dessiner des pixels individuels lorsque vous parlez directement à un serveur X, si votre programme parle à un terminal, il ne peut que demander au terminal d'afficher des caractères.
Pour afficher des graphiques au lieu de texte, vous devrez écrire un programme qui interagit directement avec le serveur X. Cela se fait généralement via une bibliothèque de boîte à outils d'interface utilisateur telle que GTK , Qt ou wxWidgets .
la source
xterm
, ou l'incorporation d'images determinology
). Notez que le terminal fait également référence aux terminaux X11 (les successeurs des choses comme celles de Tektronix)Jetez un œil à la bibliothèque Drawille . Il utilise les caractères braille UTF pour dessiner des pixels.
la source
Vous ne pourrez pas dessiner des couleurs de pixel unique dans le terminal à moins que vous ne puissiez faire ce que Wyzard mentionne, le programmer vous-même ou trouver un outil déjà fait pour le travail (cela pourrait être spécifique au terminal). Cependant, il est possible d'utiliser des coordonnées de caractères individuelles dans votre terminal pour dessiner des images 2D en utilisant des caractères ASCII et UTF-8. L'outil pour cela est appelé
tput
. Cet outil fonctionne en manipulant la position du curseur en fonction des coordonnées de votre terminal actuel. Voici un exemple de liste detput
fonctionnalités:la source
En plus des principaux outils de widgets (GTK, Qt, WxWidgets) mentionnés dans la réponse de Wyzard, vous pouvez également envisager des bibliothèques davantage orientées médias comme SFML ou libSDL . Si vous voulez juste une sortie graphique (avec presque aucune interaction), vous pourriez même envisager CairoGraphics .
Dans certains cas, vous pouvez utiliser, via un canal (par exemple popen ) ou sur la ligne de commande, des utilitaires de commande comme GNUplot ou GraphViz .
Vous pouvez également envisager d'utiliser les capacités graphiques de votre navigateur, par exemple en codant une application Web dédiée (en utilisant une bibliothèque de serveur HTTP comme Wt ou libonion , avec des technologies Web comme AJAX, SVG, HTML5, canvas, websockets, etc ...)
Mais la plupart des émulateurs de terminaux n'ont pas ou trop peu de capacités graphiques (donc pas de véritables graphismes en pixels). Vous avez donc pratiquement besoin de votre programme pour interagir avec le serveur d'affichage ( X11 , Wayland , ...).
la source