Terminal mit Bildunterstützung

9

Ist es möglich, eine Art Hybrid-Terminal zu haben, das isolierte Bilder in einem oder mehreren festgelegten Fenstern anzeigen kann?

So wie ich es verstehe, sind moderne Terminals ohnehin grafische Emulationen, so dass sie offensichtlich die zugrunde liegende Fähigkeit haben, Bilder anzuzeigen.

Ich stelle mir diese Arbeitsweise auf zwei Arten vor:

(1) einen bestimmten oder benannten Bereich des Bildschirms für Grafiken haben und der Terminaltext ihn umschließen würde, oder

(2) die Bilder würden nur inline mit den Textzeilen gedruckt; Sie würden also einen Befehl wie "show mypicture.png" eingeben und das Bild würde unter der aktuellen Zeile angezeigt und einfach vom Bildschirm gescrollt, wenn weitere Befehle eingegeben würden.

Option (1) wäre sinnvoller für eine Umgebung vom Typ Flüche, in der die Anwendung 2D-Kontrolle über das Terminal hatte.

Tyler Durden
quelle
5
Schauen Sie sich die Terminologie an , Sie können sogar Filme im Terminalhintergrund ansehen.
Jimmyij
^ das. Und wenn Sie nett zu sich selbst sind, werden Sie auch den Rest des enlightenmentDesktops berücksichtigen . terminologybietet auch ein Zeichenzellen-Zuweisungsraster - Sie können Escapezeichen darauf drucken, um ein Füllmuster zu markieren, und ihm dann einen URL- / Dateilink geben, und das Bild wird über den von Ihnen angegebenen Bereich gemalt. Es wird es im Framebuffer tun.
Mikesserv
^ dies und die ty*Dienstprogramme wie tyls,tycat photo.jpg
egmont

Antworten:

4

Vor X Windows gab es mehrere Versuche, Grafikprotokolle "inband" zu erstellen. Der 4014-Modus im klassischen xterm ist einer. Ich habe gesehen, dass es vor ungefähr 25 Jahren echte Arbeit geleistet hat, 3D-Zeichnungen mit Drahtrahmen zu erstellen. Ein leistungsfähigeres Grafikprotokoll in den VT300 + -Terminals der frühen 1980er Jahre war die DEC REGIS-Grafik. Dies war eine vollständige Raster-Grafiksprache mit Optionen für mausähnliche Eingaben und einer Reihe von Zeichnungsprimitiven (Linien, gefüllte / ungefüllte Kreise und Rechtecke). Alle in einer erweiterten Version der klassischen VT ### Escape-Sequenzen codiert. Einige der REGIS-Terminals hatten lokale "winzige Basis" -Dolmetscher und konnten lokale Programme ausführen, die über In-Band-Escape-Sequenzen heruntergeladen wurden. Man könnte sich vorstellen, wenn die CPU und der Speicher nur ein wenig größer gewesen wären, könnten ganze GUIs als alternativer Ansatz für X Window-ähnliche Systeme entwickelt worden sein.

Cosmo F.
quelle
Sie können ein Fenstersystem mit In-Band-Signalisierung im Fenstersystem "MGR" sehen: en.wikipedia.org/wiki/ManaGeR . Dies funktionierte noch 1994 auf einer Sun SPARCStation-10. Was ein Terminal betrifft, auf dem Programme ausgeführt werden, ist dies die Grundlage des NeWS-Systems von Sun Micrososystem: en.wikipedia.org/wiki/NeWS Wie viele bemerkt haben, wurde an alles einmal gedacht Das Problem ist, noch einmal darüber nachzudenken.
Bruce Ediger
Es gibt einige neuere Arbeiten, um ReGIS zu xterm hinzuzufügen.
Thomas Dickey
2

Auf dem allgegenwärtigen xterm kann ein Tektroniks 4014-Modus kompiliert werden. Der 4014 war ein "Speicherrohr" -Terminal : Sie konnten Escape-Sequenzen an ihn senden und er zeichnete Linien und Text auf dem Bildschirm. Arch Linux enthält anscheinend eine tek 4014-Demo . Ein 4014-Handbuch ist noch online.

Dies ist hauptsächlich eine historische Kuriosität. Ich kann mir nicht vorstellen, dass dies das ist, was Sie wollen, aber es zeigt, dass "In-Band-Signalisierung" für Grafikfenster verwendet werden kann, anstatt "Out-of-Band" -Signalisierung durchführen zu müssen Sagen wir, X11 tut es.

Bruce Ediger
quelle
1
Die "Arch Linux" -Demo stammt aus xterms Quellen (vor Linux).
Thomas Dickey
2
Hier ist ein tek 4014-Beispielprogramm - einschließlich einer Datei, die Sie einfach in ein modernes xterm einfügen können. Es ist jedoch erwähnenswert, dass der tek 4014-Modus nicht in der Lage ist, Schwarz zu zeichnen, außer den Bildschirm zu löschen, da dies auf Speicherröhren nicht möglich ist. Daher ist seine Fähigkeit, interaktive Grafiken zu erstellen, etwas eingeschränkt.
David gegeben