Wie kann ich die Farben von Bildern mit Escape-Sequenzen ändern?

1498
merryup

Aus fbterm (1) können wir lesen:

FbTerm unterstützt die 256-Farbmodus-Erweiterung von xterm. (...) Da die xterm-256-Farben-Escape-Sequenzen jedoch mit den von FbTerm implementierten Linux-Sequenzen in Konflikt stehen, wurden zur Unterstützung dieser Funktion private Escape-Sequenzen eingeführt:

 ESC [ 1 ; n } set foreground color to n (0 - 255) ESC [ 2 ; n } set background color to n (0 - 255) ESC [ 3 ; n ; r ; g ; b } set color n to (r, g, b), n, r, g, b all in (0 - 255) 

Wie können diese Escape-Sequenzen mit dem Befehl geschrieben werden echo -ne?

2

1 Antwort auf die Frage

2
Kai

Sie können zB verwenden

echo -ne "\E[2;32} " 

das sollte einen blauen Raum drucken. (32 ist die 32. Farbe in der standardmäßigen 8-Bit-Farbtabelle, die blau zu sein scheint.)

(Natürlich können Sie auch \x1boder verwenden\033\E das Escape-Zeichen anstelle davon verwenden.)

Um alle 255 Farben anzuzeigen, können Sie for i in ; do echo -ne "\E[2;$i} "; done; tput sgr0; echooder verwendenfor i in ; do echo -ne "\E[2;$i}$i "; done; tput sgr0; echo die auch die Nummer der Farbe enthält.

Beispiel: colour output example captured with fbgrab from framebufferconsole

Haben Sie eine Referenz für die Standardfarbpalette? Attie vor 5 Jahren 0
Nein, aber Sie könnten etwas wie `for i in versuchen; do echo -ne "\ E [2; $ i}"; erledigt; tput sgr0; echo`, dies sollte 255 farbige Leerzeichen drucken und jede Textfarbe-bezogene Einstellung am Ende auf die Standardwerte zurücksetzen (`tput sgr0`). Kai vor 5 Jahren 0
In der Tat - vielleicht könnten Sie dies Ihrer Antwort mit einem Screenshot des Ergebnisses hinzufügen? Zahlen in der Farbe wären noch besser :-) Attie vor 5 Jahren 0
Fertig, ich habe beide Einzeiler hinzugefügt (-: Kai vor 5 Jahren 1