コンソールに画像を表示しますか?

コンソールに画像を表示しますか?

Xウィンドウなしでコンソールに画像を表示するにはどのような方法がありますか?

たとえば、curses / ncursesを使用してコンソールを複数のウィンドウに分割できますが、場合によってはウィンドウの1つに画像を表示したいとします。画像を表示するためにXに切り替えて、すべての負担とオーバーヘッドを取る必要があるのは、完全に重複しているようです。ウィンドウシステムやマウス処理は必要ありません。画面に画像を置くだけです。

X Windowsの問題は、これが「ウィンドウ」システムであることです。一方、私はCurseなどのフレームベースのアプローチ(オーバーラップなし)を好みます。 (私の考えでは、全体の「ウィンドウ」パラダイムXerox PARCで発明「窓」をテーブルの上に積み重ねた紙片に例えるのは愚かなことです。 )

理論的には、これはコンソールが実際には実際のコンソールではないため、可能でなければなりません。これは、実際にはピクセル単位の制御が可能なフルスクリーン解像度で実装されるアナログコンソールです。問題は、コンソールで制限されたラスター画像の表示をサポートするためにこのエミュレータを拡張する方法です。

考えられる解決策の1つは(Linux専用ですが)、次のようになります。Linuxフレームバッファ機能(fbdev)。 ncursesとうまく機能するようにすることは可能ですか?

ベストアンサー1

「エミュレートされたコンソール」は、前述のようにシステムによって異なりますfbdev。また、通常はカーネルに統合されているため、直接変更するにはカーネルを変更する必要があります。これは確かにXを使用するよりも「過剰」です。

fbdevを直接使用することも、Thomas Dickeyが提案したようにSDLに基づいて何かを書くこともできますが、彼が言ったように、必要な作業はすべて完了しておらず、表示される作業の量を過小評価しないでください。

しかし、最も一般的ですが、デスクトップ環境かなり重いですが、X自体は(どの現代標準によると)そうではありません。主にテキストベースのアプリケーションがありますが、時々画像を公開する必要がある場合は、Xの使用を検討してください。いいえデスクトップ環境。どのように?ウィンドウマネージャを使用せずにXサーバーおよび(または選択したターミナルエミュレータ)フルスクリーンを起動するstartxには、スクリプトを使用またはカスタマイズします(または超軽量WM代替品の1つを見つけます)。xterm必要に応じてマウスカーソルを隠すことができます。その後、テキストモードプログラム内の画面上の指定された位置で軽量画像を表示するXクライアントを起動および停止し、プログラム制御下で削除できます。xterm画面の一部が隠れるようにテキストのサイズを変更または調整できます。もちろん、このトピックには多くのバリエーションがありますが、アイデアを得ることができます。

私はRAMが4 Mb未満(GBではない)のUnixシステムでXを使用したので、Xが膨らむ必要はありません。有益な副作用は、プラットフォームの移植性(Xサーバーを使用してすべてのターゲットをターゲットにできる)とリモート実行機能を取得できることです。

おすすめ記事