TTYのグラフィック


8

コマンドラインでのみ作業するように要求する問題が発生しました。私の主な仕事はプログラミング(主にFortranとOctave)で、プロットを表示する必要があります。

足りない例として:

オクターブを開いて入力するezplot('sin(x)') と、X11ディスプレイ環境が設定されておらず、ディスプレイを開けないことが出力されます。TTYでグラフィックを表示する方法はありますか?

もちろん、素晴らしいグラフィックスは期待していませんが、たまに正しい軌道に乗っているかどうかを確認する必要があります。

私の現在のアルゴリズムは非常に非効率的です。私はprint -djpeg foo.jpegそれを私の隣のコンピュータにscpします。それを借りて続行してください。


3つの明白な質問が思い浮かびます:デスクトップマシンで実行しているOSは何ですか?システムコンソールにいますか、それともリモートで接続していますか?また、リモートで接続する場合、リモートマシンに接続するためにどのプロトコル/ソフトウェアを使用しますか(PuTTYを使用したSSHなど)?
Alexios

1
ここで実際に2つの異なる質問があります。TTYでグラフィックを表示する方法はありますか?(答え:aalibまたはsvgalib); と明記されていませんどうすればグラフをASCIIに出力できますか (gnuplot、cernlibなど)。どのようにしてそれを達成することを期待しているのかではなく、あなたが望むものを明確にできますか?
dmckee ---元モデレーターの子猫2012


簡単なグーグルは、オクターブはaalibを直接サポートしておらず、誰も気にしないことを示唆しています。実際に動作するかどうかはわかりませんが、svgalibで動作するようにしたいという兆候があります。
dmckee ---元モデレーターの子猫2012

別の見方をすれば、OPがscp常にファイルを作成したくない場合は、調査するsshfsことが代替手段になる可能性があります。
2017年

回答:


5

.jpegttyに表示したい一連の画像がある場合は、aviewまたはを使用できますasciiviewasciiview画像を使用して呼び出す場合、表示のため.pnmに渡す前に、NetPBMやImageMagicなどの外部プログラムを使用して、画像を形式に変換しますaview.pnmあるascii文字の集合として画像を表すために使用される画像フォーマット。この形式で画像を表示するには、次のコマンドを使用します。

$ asciiview foo.jpeg

または.pnm最初にコピーを保存するには:

$ convert foo.jpeg foo.pnm
$ aview foo.pnm

これらはのドライバをサポートしていaalibます。


他のメソッドの単語はありません。

5

別のttyでXサーバーを実行して、必要なときにそれに切り替えることはできませんか?Xを実行しているマシンが隣にある場合は、X11転送を使用してXをそこに表示できます。


この例は、この質問にあります。
エマニュエルベルク

5

最も直接的な答えは、jp2a:JPEG to ASCII を使用することです

おそらく、有名なascii-artライブラリーlibcacaを使用できます。端末映画を見ることができるので、単純なjpegでも動作するはずです。


2

グラフをASCIIとして直接描画できgnuplotます。
端末タイプをに設定しdumbます。これで十分です。

$ gnuplot
gnuplot> set terminal dumb
Terminal type set to 'dumb'
Options are 'feed  size 79, 24'
gnuplot> plot sin(x)



    1 ++---------------***---------------+---**-----------+--------**-----++
      +                *  *              +  *  **         +  sin(x) ****** +
  0.8 ++              *   *                 *    *               *    *   ++
      |              *     *               *     *               *     *   |
  0.6 *+             *      *              *     *               *     *  ++
      |*             *      *             *       *             *       *  |
  0.4 +*            *       *             *       *             *       * ++
      |*            *        *            *        *           *        *  |
  0.2 +*           *         *            *        *           *         *++
    0 ++*          *          *          *         *          *          *++
      | *          *          *         *           *         *           *|
 -0.2 ++ *         *          *         *           *         *           *+
      |  *        *           *        *             *        *           *|
 -0.4 ++ *        *            *       *             *       *            *+
      |  *       *              *      *             *      *              *
 -0.6 ++  *      *              *      *             *      *             +*
      |    *    *               *     *               *     *              |
 -0.8 ++   *    *                *   *                 *   *              ++
      +     *  *       +         **  *   +             *  *                +
   -1 ++-----**--------+-----------**----+--------------***---------------++
     -10              -5                 0                5                10

gnuplot>

1
OPとは関係ありませんが、canvas ターミナルもあるので、すばらしいです。

@Amphiteóthはい、それも興味深いです。HTMLキャンバスにレンダリングされますよね?linkselinksテキストモードのブラウザがそれをレンダリングできれば、私はそれを言及したでしょう。
Volker Siegel

1
はい、set output 'output.html'そのファイルを取得してソースを見ると、インラインJSのようなもので、canvastext.jsgnuplot_common.jsを呼び出します。知らなかった!かなり便利です!

2

たとえば、またはその派生物の1 つなどsixelグラフィックを表示できる端末プログラムを使用している場合は、PySixelxtermを使用して画像をsixel形式に変換して出力するか、さもなければ、sixelコマンドを直接出力するフィルターを統合できます。

このようにして、ターミナルに(ASCIIではなく)トゥルーカラーグラフィックスが表示されます。


1

LinuxまたはFreeBSDのコンソールTTYを使用している場合は、svgalibを使用して、X11なしでグラフィックモードで画像を表示できます。ライブラリはコンソールをグラフィックスモードに切り替えることができます。X11には利点があるため、今日ではあまり使用されていません。

コンソール用の画像ビューアーがあり、多少古くなっているため、ビルドにいくつかの調整が必要になる場合がありますが、試してみる価値はあります。

画像ビューアzgv- xzgvインターフェースが非常に好きになった場合に備えて、という名前のX11用の同様のビューアもあります。


0

実際のグラフィックの場合、最善の(そしておそらく唯一の)svgalibですが、X11との共通点がないため、の代わりに独自のコードを作成する必要があることに注意してくださいezplot

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.