端末エミュレーター内で画像を表示したり、映画を見たりできますか?仮想コンソールの場合、フレームバッファーを介してそれを行うことができますが、端末エミュレーターはどうですか?
たとえば、端末の背景を変更したいですか?
printf '\033}bp%s\000' \
'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'
わずかに拡張されたvt100をエミュレートし、いくつかの拡張機能とブリンブリングが投入されます。
> Most escapes supported by xterm, rxvt etc. work
> Xterm 256 color escapes work
> Backgrounds (bitmap, scalable/vector, animated gif, videos)
> Transparency
> Bitmap and scalable fonts supported
> Themes for the layout and design
> URL, file path and email address detection and link-handling
> Inline display of link content
> Multiple copy and paste selections and buffer support
> Works in X11
> Works in Wayland
> Works directly in the linux framebuffer (fbcon)
> Can be finger/touch controlled
> Scan scale by UI scaling factors
> Can render using OpenGL or OpenGL-ES2 (not a requirement - just an
option)
> Can display inlined media content (images, video, documents)
> Can do multiple "tabs"
> Can do splitting into multiple panes
> Block text selection
> Drag and drop of text selections and links
> Can stream media from URLs
> Tab switcher has live thumbnail content
> Single process, multiple windows/terminals support
> Fast (gives urxvt a run for its money)
> Themable visual bell
> Compress backscroll
> Text reflow on resize
> Color palette selection
> More...
あなたはそれを上に見ますか?これは、をフレームバッファーで実行します。
多くの端末エミュレーターが Sixel Graphics をサポートしています PySixel github page から、リストは次のとおりです:
前述の PySixel を使用して画像を表示できます。これは、必要な変換を実行できるようです。別のオプションは、netpbm
のツールを使用することです。 mltermでJPEG画像を変換して表示するために、以下を使用して良い結果が得られました。
jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty
結果:
XTermはSixel画像を表示することもできますが、サポートは現在16色に制限されています(バグもある)。スクリプトが壊れているようですが、サンプル画像を含むアーカイブをダウンロードできます here 。 XTermはppmtosixel
による正確な形式の出力を表示しません(開始/終了で使用される制御シーケンスをサポートしていません)。 PySixel
を見つける前に、次のスクリプトを使用してppmtosixel
出力をハッキングし、XTermが表示するものに変換しました。
#!/bin/bash
echo -e '\eP0;0;0;q"1;2;400;400'
jpegtopnm "$1" |
pnmquant 16 |
ppmtosixel |
tail -n +2 |
head -c -3
echo -e '\x1b\x5c\x0d'
tput cup "$(tput lines)" 0
画像はデフォルトのVT420モードでは表示されません。 VT240、VT241、VT330、またはVT340モードでのみ表示されます。また、--enable-sixel-graphics
ビルドオプションが必要です。 VT340(xterm -ti vt340
)。結果は次のとおりです(1つ目はサンプルアーカイブの非常にクールなtron画像です)。
私は最近、フレームバッファイメージビューアfbiを発見しました。
Unixの世界では、ターミナルエミュレータはシリアルターミナルをエミュレートします。ユーザーに表示されるデータストリームは、シリアルラインを介して一度に1つ送信されます。
モデム時間では、これは通常、1秒あたり約1000〜2000文字でしたが、エミュレートされたハードウェアのみが含まれる場合は、今日の方がはるかに高速になる可能性があります。その後、送信されたバイトを理解するのは端末次第でした。通常、これは文字の表示、カーソルの移動、および画面表示の操作用です。いくつかの端末はグラフィックモードに切り替えることができます-gnuplotはかなりサポートしています-しかし、帯域幅が非常に狭すぎて、ビデオに関して興味深いことを行うことができません。
それでも、エミュレートされたハードウェアを備えた現代のコンピューターでは、ターミナルエミュレーターはかなりの能力を発揮します。検索キーワード「ttyquake」で画像を検索してみてください。あなたがHDを切望するなら、あなたはおそらく失望するでしょう。