シェル:色を維持しながらテキストをPNGに出力します。

シェル:色を維持しながらテキストをPNGに出力します。

フォーマットを失うことなくシェルコマンドの出力をPNG画像として保存できるようにしたいです。一種の出力スクリーンショットと同じです。

some-command-with-color | text-to-png a.png

このコマンドはテキストをPNGに変換しますが、色は保持しません。

tldr -c tldr | convert -page  4000x4000 -font FreeMono -pointsize 20  -background white -trim +repage -bordercolor white  -border 15 text:- png:a.png

ここに画像の説明を入力してください。

答え1

これを行うプログラムはansilove。多くのディストリビューション用にパッケージ化されています。

たとえば、

$ ls --color > /tmp/output.ansi
$ ansilove -o /tmp/output.png /tmp/output.ansi

答え2

代わりにアンシロフ、しかもしない(同じ人が作りましたが、はるかに簡単です)ancito イメージまたはショートメッセージ

ancito イメージ

# installation
pip install ansitoimg

# from file to image
ansitoimg /tmp/dcd.log dcd.svg

# pipeline
ls --color=always /etc | ansitoimg ls.svg

# preserving color in pipeline
unbuffer grc ss -nlpt | ansitoimg ss.svg

# use theme and wide screen
dcd -d za.tryhackme.com -s 10.200.28.101 | ansitoimg -w -t /tmp/one-dark.yaml /tmp/dcd.png

ショートメッセージ

# from file to image
cat /tmp/dcd.log| textimg -o out.png

# pipeline
ls --color=always /etc | textimg -o out.png

# preserving color in pipeline
unbuffer grc ss -nlpt | textimg -o out.png

# choose font (-f), emoji font (-e) and use emoji font (-i)
dcd -d za.tryhackme.com -s 10.200.28.101 | textimg -f /usr/share/fonts/TTF/Anonymous\ Pro.ttf -e /usr/share/fonts/joypixels/JoyPixels.ttf -i -o /tmp/out.png

関連情報