Grafik dalam TTY

8

Sesuatu telah muncul yang menuntut saya untuk bekerja hanya di baris perintah. Pekerjaan utama saya adalah pemrograman (kebanyakan di Fortran dan Octave) dan saya perlu menampilkan plot.

Sebagai contoh lumpuh:

Saya membuka oktaf dan ketik ezplot('sin(x)') dan menghasilkan bahwa Lingkungan Tampilan X11 tidak diatur dan tidak dapat membuka tampilan. Apakah ada cara bagi saya untuk melihat grafik di TTY?

Jelas, saya tidak mengharapkan grafik yang luar biasa tetapi saya perlu melihat apakah saya berada di jalur yang benar sesekali.

Algoritma saya saat ini sangat tidak efisien. Saya print -djpeg foo.jpegkemudian scp ke komputer tetangga saya. Pinjam itu dan lanjutkan.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Tiga pertanyaan yang jelas muncul di benak Anda: OS apa yang Anda jalankan di mesin desktop Anda? Apakah Anda berada di konsol sistem, atau terhubung dari jarak jauh? Dan, jika terhubung jarak jauh, protokol / perangkat lunak apa yang Anda gunakan untuk terhubung ke mesin jarak jauh (misalnya SSH menggunakan Putty)?
Alexios
1
Anda sebenarnya memiliki dua pertanyaan berbeda di sini. Apakah ada cara bagi saya untuk melihat grafik di TTY? (jawab: aalib atau svgalib); dan yang tidak disebutkan Bagaimana saya bisa mencetak grafik ke ASCII? (gnuplot, cernlib, dll). Bisakah Anda memperjelas apa yang Anda inginkan daripada bagaimana Anda berharap untuk mencapainya?
dmckee --- ex-moderator kitten
2
Terkait dan dapat dijawab dalam alat bantu plot (berbasis teks) apa pun di kotak alat unix? .
dmckee --- ex-moderator kitten
Google cepat menunjukkan bahwa oktaf tidak mendukung aalib secara langsung dan tidak ada yang peduli, ada tanda-tanda bahwa beberapa orang ingin itu bekerja dengan svgalib, meskipun saya tidak tahu apakah itu benar-benar berfungsi.
dmckee --- ex-moderator kitten
Pada catatan yang berbeda, jika OP tidak ingin scpfile sepanjang waktu maka melihat ke dalam sshfsmungkin menjadi alternatif.
phk

Jawaban:

5

Jika Anda hanya memiliki serangkaian .jpeggambar yang ingin Anda tampilkan dalam satu tty, Anda dapat menggunakan aviewatau asciiview. Saat memanggil asciiviewdengan gambar, itu akan mengkonversi gambar ke .pnmformat - menggunakan program eksternal seperti NetPBM atau ImageMagic - sebelum meneruskannya aviewuntuk ditampilkan. Ini .pnmadalah asciiformat gambar yang digunakan untuk mewakili gambar sebagai sekumpulan karakter. Untuk melihat gambar dalam format ini, cukup gunakan:

$ asciiview foo.jpeg

atau untuk menyimpan .pnmsalinan terlebih dahulu:

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

Ini mendukung pengemudi dari aalib.


sumber
Tidak ada kata metode lain.
5

Bisakah Anda tidak menjalankan server X pada tty lain dan beralih ke itu ketika Anda perlu? Jika Anda memiliki mesin di sebelah Anda yang menjalankan X, maka Anda dapat menggunakan penerusan X11 untuk menampilkannya di sana.

psusi
sumber
Contoh dari ini dapat ditemukan dalam pertanyaan ini .
Emanuel Berg
5

Jawaban paling langsung adalah dengan menggunakan jp2a : JPEG ke ASCII.

Mungkin Anda bisa menggunakan perpustakaan ascii-art yang terkenal: libcaca . Bahkan memungkinkan untuk melihat film di terminal , jadi itu juga berfungsi untuk jpeg sederhana.

Coren
sumber
2

Anda dapat langsung menggambar grafik sebagai ASCII dengan gnuplot;
Setel jenis terminal ke dumb, itu saja yang Anda butuhkan:

$ 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>
Volker Siegel
sumber
1
Tidak terkait dengan OP tetapi saya perhatikan ini juga memiliki terminal kanvas , yang sangat bagus!
@ Amphiteóth Ya, itu menarik juga - itu dirender ke kanvas HTML, kan? Saya akan menyebutkannya jika peramban mode teks linksdan elinksdapat membuatnya.
Volker Siegel
1
Ya, dengan sth seperti set output 'output.html'Anda mendapatkan file itu, dan melihat sumbernya, itu seperti inline JS dan memanggil canvastext.js dan gnuplot_common.js . Tidak tahu ini! Cukup berguna!
2

Jika Anda menggunakan program terminal yang mampu menampilkan grafik enamel , misalnya xtermsalah satu atau salah satu turunannya, Anda dapat mengubah gambar menjadi format enamel dengan PySixel dan output, atau mengintegrasikan filter yang mencetak perintah enamel secara langsung.

Dengan cara itu, Anda akan memiliki grafik warna asli (bukan ASCII) di terminal.

dirkt
sumber
1

Jika Anda menggunakan konsol TTY di Linux atau FreeBSD, Anda dapat menggunakan svgalib untuk menampilkan gambar dalam mode grafis, tanpa X11. Perpustakaan dapat mengalihkan konsol ke mode grafis - hanya saja tidak umum digunakan saat ini, karena X11 memiliki kelebihannya.

Ada penampil gambar untuk konsol, yang mungkin memerlukan beberapa penyesuaian untuk membuatnya karena agak ketinggalan jaman, tetapi perlu dicoba.

Penampil gambar zgv- ada juga penampil serupa untuk X11, dinamai xzgv, jika Anda semakin menyukai antarmuka.

Volker Siegel
sumber
0

Untuk grafik aktual, taruhan terbaik Anda (dan mungkin hanya) adalah svgalib , tetapi perlu diketahui bahwa itu tidak memiliki kesamaan dengan X11, jadi Anda harus menulis pengganti Anda sendiri ezplot.

Shadur
sumber