TTY中的图形


8

出现了一些问题,要求我仅在命令行中工作。我的主要工作是编程(主要是在Fortran和Octave中),我需要显示图表。

作为一个me脚的例子:

我打开八度并键入ezplot('sin(x)') ,它输出未设置X11显示环境并且无法打开显示。我有什么办法可以在TTY中查看图形吗?

显然,我不希望有很棒的图形,但我需要一段时间查看一下自己是否在正确的轨道上。

我当前的算法效率极低。我print -djpeg foo.jpeg然后将其scp到我的相邻计算机。借用并继续。


我想到了三个明显的问题:台式机上正在运行什么操作系统?您是在系统控制台上还是在远程连接?而且,如果是远程连接,您使用什么协议/软件连接到远程计算机(例如,使用PuTTY的SSH)?
Alexios 2012年

1
您实际上在这里有两个不同的问题。我有什么办法可以在TTY中查看图形吗?(答案:aalib或svgalib);和未说明的如何将图形打印为ASCII?(gnuplot,cernlib等)。您能否阐明您想要什么,而不是希望达到什么目的?
dmckee ---前主持人小猫,


一个快速的谷歌建议八度不直接支持aalib,没有人在乎,有迹象表明有人希望它与svgalib一起使用,尽管我不知道它是否真正起作用。
dmckee-前主持人小猫,

另一方面,如果OP不想一直scp归档,则sshfs可以选择调查。
phk

Answers:


5

如果只是.jpeg想在tty中显示一系列图像,则可以使用aviewasciiview。调用asciiview图像时,它将.pnm使用NetPBM或ImageMagic等外部程序将图像转换为格式,然后再将其传递给aview显示。的.pnmascii用于表示图像组的字符图像格式。要以这种格式查看图像,只需使用:

$ asciiview foo.jpeg

或先保存.pnm副本:

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

这些支持来自的驱动程序aalib


没有其他方法的话。

5

您是否可以在其他tty上运行X服务器并在需要时切换到该服务器?如果您旁边有一台运行X的计算机,则可以使用X11转发使其在此处显示。


这个问题中可以找到一个例子。
伊曼纽尔·伯格


2

您可以使用gnuplot; 直接将图形绘制为ASCII 。
将终端类型设置为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画布上,对吗?如果linksand elinks文本模式浏览器可以渲染它,我会提到它。
Volker Siegel 2014年

1
是的,就像set output 'output.html'您获取该文件并查看源代码一样,它类似于内联JS并调用canvastext.jsgnuplot_common.js。不知道这个!非常有用!

2

如果您使用的是能够显示六维图形的终端程序,例如其一个xterm或多个衍生图形,则可以使用PySixel将图像转换为六维格式并输出,或者集成一个可以直接打印六维命令的过滤器。

这样,您将在终端中拥有真实的彩色图形(而不是ASCII)。


1

如果您在Linux或FreeBSD上的控制台TTY上,则可以使用svgalib以图形模式显示图像,而无需X11。该库可以将控制台切换为图形模式-它只是今天不常用,因为X11具有它的优势。

控制台有一个图像查看器,由于它有些过时,可能需要一些调整才能构建它,但是值得尝试。

图像查看zgv器-X11也有一个类似的查看器,名为xzgv,以防您非常喜欢该界面。


0

对于实际的图形,最好的选择(可能是唯一的选择)是svgalib,但请注意,它与X11没有什么共同之处,因此您需要编写自己的替代品ezplot

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.