Bisher habe ich Zeichen verwendet, um Bilder, Formen usw. in einem Terminal zu zeichnen.
Ist es möglich, ein einzelnes Pixel zu zeichnen?
Sagen wir:
foo 1 1 red
Dadurch wird ein rotes Pixel an der Koordinate gezeichnet (1, 1)
.
Gibt es eine vorhandene Anwendung, die diese Aufgabe übernimmt?
Derzeit läuft Ubuntu 14.04.
DEC GT40
wäre nützlich, aber es ist zu teuer ... :-)Antworten:
Terminals sind Charakter-Zelle zeigt und keine Unterstützung für Pixelgrafiken zeichnen. Nicht einmal unter X11; Obwohl es durchaus möglich ist, einzelne Pixel zu zeichnen, wenn Sie direkt mit einem X-Server sprechen, kann Ihr Programm, wenn es mit einem Terminal spricht, das Terminal nur auffordern, Zeichen anzuzeigen.
Um Grafiken anstelle von Text anzuzeigen, müssen Sie ein Programm schreiben, das direkt mit dem X-Server interagiert. Dies erfolgt normalerweise über eine UI-Toolkit-Bibliothek wie GTK , Qt oder wxWidgets .
quelle
xterm
oder das Einbetten von Bildern vonterminology
). Beachten Sie, dass sich das Terminal auch auf X11-Terminals bezieht (die Nachfolger von Dingen wie den Tektronix-Terminals)Schauen Sie sich die Drawille-Bibliothek an . Es verwendet die UTF-Braillezeichen, um Pixel zu zeichnen.
quelle
Sie können keine einzelnen Pixelfarben im Terminal zeichnen , es sei denn, Sie können die von Wyzard erwähnten Aktionen ausführen , selbst programmieren oder ein bereits für den Auftrag erstelltes Tool finden (dies kann terminalspezifisch sein). Es ist jedoch möglich, einzelne Zeichenkoordinaten in Ihrem Terminal zu verwenden, um 2D-Bilder mit ASCII- und UTF-8-Zeichen zu zeichnen. Das Tool dafür heißt
tput
. Dieses Werkzeug manipuliert die Cursorposition entsprechend den Koordinaten Ihres aktuellen Terminals. Hier ist eine Beispielliste mittput
Funktionen:quelle
Zusätzlich zu den wichtigsten Widget-Toolkits (GTK, Qt, WxWidgets), die in Wyzards Antwort erwähnt wurden , könnten Sie auch medienorientiertere Bibliotheken wie SFML oder libSDL in Betracht ziehen . Wenn Sie nur eine grafische Ausgabe (fast ohne Interaktion) wünschen, können Sie sogar CairoGraphics in Betracht ziehen .
In einigen Fällen können Sie über eine Pipe (z. B. Popen ) oder in der Befehlszeile Befehlsdienstprogramme wie GNUplot oder GraphViz verwenden .
Sie können auch die grafischen Fähigkeiten Ihres Browsers nutzen, z. B. indem Sie eine dedizierte Webanwendung codieren (mithilfe einer HTTP- Serverbibliothek wie Wt oder libonion mit Webtechnologien wie AJAX, SVG, HTML5, Canvas, Websockets usw.).
Die meisten Terminalemulatoren verfügen jedoch über keine oder zu geringe grafische Fähigkeiten (also keine echten Pixelgrafiken). Sie benötigen also praktisch Ihr Programm, um mit dem Anzeigeserver ( X11 , Wayland , ...) zu interagieren .
quelle