これまでは、端末で画像や図形などを文字で描きました。
単一のピクセルを描くことは可能ですか?
まあ言ってみれば:
foo 1 1 red
これにより、座標に赤いピクセルが描画され(1, 1)
ます。
この仕事をする既存のアプリケーションはありますか?
現在Ubuntu 14.04を実行しています。
DEC GT40
有用であろうが、それはあまりにも高価だ... :-)
これまでは、端末で画像や図形などを文字で描きました。
単一のピクセルを描くことは可能ですか?
まあ言ってみれば:
foo 1 1 red
これにより、座標に赤いピクセルが描画され(1, 1)
ます。
この仕事をする既存のアプリケーションはありますか?
現在Ubuntu 14.04を実行しています。
DEC GT40
有用であろうが、それはあまりにも高価だ... :-)
回答:
端末は文字セルディスプレイであり、ピクセルグラフィックの描画をサポートしていません。X11で実行している場合でも同様です。Xサーバーと直接通信するときに個々のピクセルを描画することは確かに可能ですが、プログラムが端末と通信している場合は、端末に文字の表示を要求することしかできません。
テキストではなくグラフィックを表示するには、Xサーバーと直接対話するプログラムを作成する必要があります。これは通常、GTK、Qt、またはwxWidgetsなどのUIツールキットライブラリを介して行われます。
xterm
やの画像の埋め込みなどterminology
)があります。注意端末はまた、X11端子(テクトロニクスのもののようなものの後継)を参照
見ていDrawilleライブラリを。これは、UTF点字文字を使用してピクセルを描画します。
Wyzardの言及したことを実行したり、自分でプログラムしたり、ジョブ用に既に作成されているツールを見つけたり(これは端末固有の可能性があります)できない限り、端末で単一のピクセルカラーを描画することはできません。ただし、端末で個別の文字座標を使用して、ASCIIおよびUTF-8文字を使用して2D画像を描画することは可能です。このためのツールはと呼ばれtput
ます。このツールは、現在の端末の座標に従ってカーソルの位置を操作することで機能します。次に、tput
機能のサンプルリストを示します。
# tput Cursor Movement Capabilities:
tput cup Y X
# Move cursor to screen location X,Y (top left is 0,0)
tput sc
# Save the cursor position
tput rc
# Restore the cursor position
tput lines
# Output the number of lines of the terminal
tput cols
# Output the number of columns of the terminal
tput cub N
# Move N characters left
tput cuf N
# Move N characters right
tput cuu N
# up N lines
tput cud N
# down N lines
Wyzardの回答で述べられている主要なウィジェットツールキット(GTK、Qt、WxWidgets)に加えて、SFMLやlibSDLなどのメディア指向のライブラリを検討することもできます。グラフィカル出力(ほとんど相互作用がない)が必要な場合は、CairoGraphicsを検討することもできます。
場合によっては、パイプ(例:popen)を使用するか、コマンドラインでGNUplotやGraphVizなどのコマンドユーティリティを使用します。
また、ブラウザのグラフィック機能の使用を検討することもできます。たとえば、専用のWebアプリケーションをコーディングする(WtやlibonionなどのHTTPサーバーライブラリを使用し、AJAX、SVG、HTML5、canvas、websocketなどのWebテクノロジを使用する)
しかし、ほとんどのターミナルエミュレータにはグラフィック機能がないか、またはほとんどありません(したがって、本物のピクセルグラフィックはありません)。したがって、実際には、ディスプレイサーバー(X11、Wayland、...)と対話するプログラムが必要です。