画像にSTDOUTをパイプ?


1

最近、 "git show< hash>"のような端末コマンドを実行したいと思いましたそして出力を画像、好ましくはPNGに保存する。

私はそれをかなりググって、特にimportコマンドで、いくつかのきちんとしたトリックを見つけました、しかしSTDOUTを確実に捕えて、それをイメージとして保存することは何もしませんでした。

だから、私はここで脳の信頼を頼むと思いました。 Linux用のテスト済みで検証済みのソリューションがありますか?


1
明確にするために、テキストをイメージとしてレンダリングしたいのです(したがって、見たときにテキストを読むことができます)。それに対する答えは、「テキストのASCII / Unicodeバイトをイメージファイルのバイトにしたいのですが、ランダム/破損/ガベージピクセルのように見えるイメージにしても」よりも複雑になる可能性があります。テキストのASCII / Unicodeバイトをメタデータか画像ファイルフォーマットの隠しフィールドに格納したい "#:。
Spiff

その出力を可読テキストとしてレンダリングしてください、そうです。 .bashrcファイルに "force_color_prompt = yes"が設定されているため、可能であれば色を保持しますが、効果がある場合は一時的にその設定を反転してみることもできます。
rjh427

回答:


2

テキストを画像に変換する方法はすでにここで回答されています。 https://stackoverflow.com/questions/3826379/image-magick-converting-text-to-image-is-there-a-way-to-center-the-text-to-t その答えは、ImageMagickツールを使ってこれを行う方法に関するさまざまなバリエーションを提供します。

注意してください:これはあなたのコマンドの出力がプレーンテキストである場合にのみ確実に機能します。
(ncursesのもののような)なんらかの種類の凝った書式設定があると、結果はまったく予測できません。


変換するよ私はそれを使っていくつかのことを試みましたが、それらのどれも動かせませんでした。私の.bashrcファイルに "force_color_prompt = yes"が設定されていて、あなたが言った素敵な書式設定があるからでしょう。
rjh427

0

いくつかの可能性を列挙した部分的な答え:

テキストを画像にレンダリングするために使用できるプログラムはたくさんあります。例えば:

  • convert ImageMagick / GraphicsMagickより
  • pbmtext NetPBMから、Portable Bitmapにレンダリングします。
  • paps、Pangoを使ってPostScriptにレンダリングする
  • enscript、ポストスクリプトにレンダリング

しかし、別の形式をPNGに変換しても問題になりません。

これらのうち、 enscript 「特別なエスケープ」によって色をサポートします。これらは端末エスケープと同じではないので、あなたはそれらをawk / perlなどで変換するでしょう。

もう1つのオプションは、全体をxtermとスクリーンショットにレンダリングすることです。

ご覧のとおり、これらはすべて非常に複雑で、それらを機能させるには自明の努力が必要です。基本的には端末のレンダリング部分全体を複製したいので、これは当然のことです。

単に出力自体を保管し、それを調べたいときには端末で取り出す方が簡単な場合があります。


私が気づくようになるので、それは確かに自明ではありません。ビットマップは機能しますが、圧縮されていないのでそれほど魅力的ではありません。ポストスクリプトとして保存するといくつかの望ましいオプションが得られますが、その目的はgit show< hash>を保存することです。他の人と共有できる形式で出力する(ポートフォリオと考える)。それとも私はまだ考えていないより良いオプションがあるかもしれません。
rjh427

私が言ったように、最終的なフォーマットは問題ではありません - あなたは自由にPBMからPNGへ、またはPostScriptからPNGへの最終ステップで変換することができます。主な問題は、テキストをカラーエスケープでレンダリングすることです。 保存する git show 次のようにファイルに保存するだけで出力を実行できます。 git show > xxx または git show --pretty=blah > xxx。何らかの履歴書に必要な場合は、それを画像に変換するよりも、テキスト処理システムに必要なコマンドに変換する方がはるかに簡単です。
dirkt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.