web-dev-qa-db-ja.com

端末にグラフィック画像を表示するにはどうすればよいですか?

これは、コピーして貼り付けた簡単なモックアップです。これはとてもクールで便利だと思います。

このようなものはすでに存在しますか?

http://imgur.com/Z3DbS

139
Dennkster

2018-12-31を更新

あらゆる周辺のターミナルエミュレーターキティには、イメージを表示するための icatコマンドがあります (tmux内では機能しません)。 Kittyは、レンジャー内の イメージプレビューも有効にします (ターミナルファイルマネージャー)、これは私が現在最も頻繁に使用している方法です(tmux内で動作します)。


1. w3m

w3mの主な目的は、コンソール内のWebブラウジングを提供することですが、端末で画像を表示するためにも使用できます。インストールする関連パッケージは、w3mおよびw3m-img(少なくともUbuntuで)です。その後、-o ext_image_viewer=0を渡すか、w3m内のオプションメニュー( 'o')に移動して外部画像ビューアーを無効にし、外部画像表示を無効にする必要があります。

ここで、w3m <image_name>と入力すると、端末に画像が表示されます。 w3mはターミナルウィンドウ全体を使用するため、w3mを終了するまで、以前のコマンドを見ることができません(lessではなく、catと考えてください)。ターミナルウィンドウに収まるように画像が大きすぎる場合は、外部で(imagemagickで)開かれます。また、w3mインライン画像がgnome-terminalで機能しない複数の場所を読んだとしても、それはうまく機能していることに注意してください。最初に画像を閉じてからw3mを閉じるためにqを2回入力する必要があるのは少し面倒です。

2.用語

tycatterminologyの一部であり、catがテキストファイルを表示し、 imgcatのような画像を表示します OS X上のiTerm2で動作します。

3. libsixel + mlterm/xterm

libsixel-binおよび互換性のある端末をインストールします(このreadmeの '要件'に記載されている例 正しいフラグでコンパイルされたmltermまたはxtermなど。img2sixelコマンドで画像を表示できます。これらのパッケージはUbuntuリポジトリで入手できます。

4. FIM

次に、 FIM があり、これはfbiの改良バージョンです。ホームページには、フレームバッファだけでなくXでも画像を表示できると記載されています。しかし、私にはインストールされません。 Edit0.5トランクバージョンをダウンロードし、./configure --disable-exifを実行してから、anaconda(pythonディストリビューション)を一時的にパスから削除して実行しましたlibpngおよびSudo checkinstallを実行する前にmakeとの競合が発生しました(checkinstallを使用して手動でバージョン番号を書き込む必要がありますが、make installよりも簡単に削除できます)。ただし、fbiと同様に、Xを実行する必要はありませんが、画像は別のウィンドウに表示されます。

5. jupyter-qtconsole

また、クリエイティブを取得し、システムコンソールとしてjupyter-qtconsoleを使用し、インラインプロット(%matplotlib inline)を表示するように構成し、 matplotlibを使用して画像を表示します =)

6.フェ

fehはXを使用して画像を表示していますが、feh -xは、qまたはxですばやく閉じることができるボーダーレスウィンドウにポップアップ表示します。端末ごとに画像が表示されるわけではありませんが、これは今まで見つけた中で最も邪魔にならない方法であり、gnome-terminalimgcat/tycatと同等になるまで使用しているものなので、言及する価値があると思いました。

45
joelostblom

多分 caca はあなたが望むものです。 imagesの場合:

Sudo apt-get install caca-utils
cacaview /PATH/TO/image.jpg

端末ウィンドウが十分に大きいことを確認してください。

たとえば、 この画像cacaviewに表示される方法は次のとおりです。

Screenshot

私は時々mplayerでASCIIとしてビデオを見るの楽しみのためにそれを使用しました:)このように:

mplayer -vo caca /PATH/TO/video.mpg
63
user569825

これらの機能をサポートする最新の端末用に、画像をANSI RGB制御コードとUnicodeブロックグラフィックス文字に変換する小さなC++ツールを作成しました: https://github.com/stefanhaustein/TerminalImageViewer

インストール:

git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src/main/cpp
make
Sudo make install

使用法:

tiv <image(s)>

Edit:リンク/手順をメインリポジトリに変更しました;使用法を追加しました。

例:

TerminalImageViewer

36
Stefan Haustein

モックアップで要求されたとおりに元の質問を正確に解決する、非常に迅速でシンプルな1行のシェル関数を作成しました。以下のスクリーンショットは実際の画像であり、モックアップではないことに注意してください。

function lsix() { montage -tile 7x1 -label %f -background black -fill white "$@" gif:- | convert - -colors 16 sixel:-; }

Screenshot of using the lsix command

前提条件は最小限です:xtermおよびImageMagick(apt-get install xterm imagemagick)。 xtermはvt340モードである必要があります。このモードは、~/.Xresourcesまたはコマンドライン(xterm -ti vt340)で設定できます。

制限:表示されるallの画像では16色のみが使用されます。つまり、画像を単独で見ると見た目が良くなる場合があります。 (下記参照)。

Screenshot showing 16 color limitation

UPDATE

上記の答えは今でも正しいですが、私は端末に直接画像の「ls」を実行できるさらに優れたシェルスクリプトを作成しました。画像の見栄えを良くするために追加したあらゆる種類の改善があります(より多くの色、適切なアルファ、JPEGの向き、多くの画像の処理、コンパクトなタイルレイアウトなど)。それはまだかなり小さなプログラムですが、人々がそれをカスタマイズしたいと思うかもしれないので、githubに載せました: https://github.com/hackerb9/lsix

32
hackerb9

端末ウィンドウではできませんが、fbiを使用して Linuxコンソール で実行できます。これを機能させるにはフレームバッファが必要です。

Sudo apt-get install fbi

Linuxコンソールに移動します(使用 Ctrl+Alt+F1)およびfbi <filename>を入力します

画像が表示されるはずです。

30
Amith KK

別の選択肢は用語です:

enter image description here https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

Enlightenment-git リポジトリを追加することでUbuntuにインストールできます:

Sudo add-apt-repository ppa:Enlightenment-git/ppa
Sudo apt-get update && Sudo apt-get install terminology

または、最近のUbuntuリリース> = Vivid(15.04)では、公式リポジトリから取得できます。

Sudo apt-get install terminology

画像を表示するにはtycat IMAGENAMEと入力し、画像のリストを表示するにはtyls -mと入力します。

20
Javier López

TermKit という名前のプロジェクトが実際にあります。テストしたい場合は、 http://blog.easytech.com.ar/2011/05/21/playing- with-termkit-with-chrome / しかし、それはかなり未完成です(Macがあるように見えるので、「オリジナル」なのでMacバージョンを試してください)

ええ、それは探求する価値のあるアイデアですが、画像を表示する必要は必ずしもないので、グラフィカルモードとテキストのみのモードの切り替えは迅速でなければなりません。また、-と完全に互換性がある必要があります。 Vim ..

12
sakjur

これは存在しません。 gnome-terminalは、少なくとも私の知る限り、テキストを表示することしかできません。

ただし、canコマンドラインから画像ビューアーを呼び出して、特定のフォルダー内の画像を表示します。そのため、上記のモックアップから離れて、現在のフォルダー内のすべての.jpg画像を一覧表示すると、コマンドラインからEye of GNOME(Ubuntuのデフォルトの画像ビューアー)を使用して同様のことができます:

eog *.jpg &

表示されるウィンドウには、一度に1つの画像しか表示されませんが、提供されている矢印ボタンを使用して、画像を切り替えることができます。

これを行うツールを作成しました。ターミナルに「Show Image in Terminal」という名前を付けました(siit)。 256色の端末とUTF8のサポートがあり、Perlで書かれていることを前提としています。

~/binにドロップしました。 Image :: Magick、Term :: Size、Getopt :: Long、およびTime:HiResが存在することを前提としています。これらはすべて、ディストリビューションのリポジトリまたはCPANで利用できるはずです。

私の目的は私の家にsshし、Xでディスプレイを起動せずに画像をすばやく表示することでした。スクリプトは、使用している端末の適切な幅/高さにスケーリングします。UTF8文字を使用して、わかりやすくします。 YMMV。

サンプルショットはこちら

ここにソースコード

6
Tom

Joel's answer に加えて、 Rangerw3mimgdisplay拡張子を持つターミナルファイルマネージャーは画像をフルカラーで表示でき、「oldschool ASCII art」もサポートします。プレビュー」。 ここ は、有効にする方法です。これはあなたが探していた正確なものではないかもしれませんが、ターミナルで画像をプレビューする方法です。

enter image description here

6
afedersin

別のツールは catimg ですが、Ubuntu用の準備ができたパッケージはありません。実際に画像を表示するのではなく、色付きの文字に変換します。

enter image description here

4
some user

node.js(インストール手順 here )のソリューションを次に示します。

  1. picture-tube 

  2. イメージング

いずれかをインストールするには、npm install -g <package_name>と入力します。ここで、package_namepicture-tubeまたはimagingのいずれかです。

3
Nemo