Terminalausgabe in Bilddatei umleiten

7

Ich muss programmgesteuert einige Unix-Befehle ausführen und die Ausgabe in einer Bilddatei erhalten, das Format könnte pngoder jpeg( jpg) sein.

Die Befehle werden auf einem AIX-Computer (IBM * nix) ausgeführt. Ich habe keine Berechtigung zum Installieren neuer Pakete, aber ich denke, es gibt eine Möglichkeit, dies mithilfe einer Pipeline und Umleitungen mit den Standardpaketen des Betriebssystems zu tun.

Leider konnte ich keine Methode finden, um dies zu tun.

Fernando Martinez
quelle
Machen Sie Screenshots und bearbeiten Sie sie gemeinsam auf einem voll ausgestatteten Computer.
donothings erfolgreich

Antworten:

4

Für Befehle mit geringer Ausgabe und kurzen Zeilen können Sie dies einfach mit einer Kombination aus a2ps, Ghostscript und Imagemagick tun:

Hier wird die Ausgabe des Befehls lsals Beispiel verwendet.

ls | 
a2ps -=book -B -q --medium=A4dj --borders=no -o out1.ps &&
gs \
  -sDEVICE=png256           \
  -dNOPAUSE -dBATCH -dSAFER \
  -dTextAlphaBits=4 -q      \
  -r300x300                 \
  -sOutputFile=out2.png out1.ps
convert -trim out2.png result.png

a2psErstellt ein Vektorbild des Textes. Ghostscript rastert es in eine PNG-Grafik (verwenden Sie kein JPEG, es ist das falsche Grafikformat dafür, es ist nur für fotorealistische Bilder nützlich). Schließlich wird imagemagick verwendet, um den umgebenden Leerraum zu entfernen. Lesen Sie die Manpages und passen Sie die Parameter nach Bedarf an.

Wenn die Programme nicht installiert sind, können Sie sie --prefix=/home/me/.localals Benutzer ohne Administratorrechte kompilieren und installieren .

EDIT: Wie in einem Kommentar erwähnt, ist eine Lösung ohne die Abhängigkeit von a2psund Ghostscript die folgende.

convert label:"$(ls)" result.png
Marco
quelle
Vielen Dank für Ihre Antwort, aber wie ich angegeben habe, habe ich keine Erlaubnis, neue Pakete zu installieren
Fernando Martinez
Wenn Sie Imagemagick haben, können Sie das ausschneiden a2psund einfach verwenden convert label:"$( ls )" ls_output.png. Ich kann jedoch nicht über die Ästhetik sprechen.
Donothings erfolgreich
@FernandoMartinez Sie benötigen keine Root-Rechte, um Software zu installieren, es sei denn, die Home-Partition ist mit gemountet noexec, aber ich habe noch nie ein System in der Produktion gesehen, bei dem die Benutzer keine Ausführungsrechte in ihrem Home-Verzeichnis hatten. Sie sollten das noch einmal überprüfen.
Marco
Ich kannte diesen Trick nicht, ich führe "$ (ls)" result.png aus, ist es richtig? Haben Sie einige Beispiele?. Vielen Dank.
Fernando Martinez
Das Beispiel ist in meiner Antwort auf den grauen Bereich gedruckt. Dazu benötigen Sie das Programm convertaus der imagemagickSuite.
Marco