端末で単一のピクセルを描画する方法は?


10

これまでは、端末で画像や図形などを文字で描きました。

単一のピクセルを描くことは可能ですか?

まあ言ってみれば:

foo 1 1 red

これにより、座標に赤いピクセルが描画され(1, 1)ます。

この仕事をする既存のアプリケーションはありますか?

現在Ubuntu 14.04を実行しています。


3
どんな端末がありますか?12月GT40
Anthon 2014

(Ubuntuのが付属しています)@Anthon gnome-terminalの
IonicăBizău

1
@Anthon AはDEC GT40有用であろうが、それはあまりにも高価だ... :-)
IonicăBizău

1
@terdonこれは本質的にプログラミングの質問ではないため、再オープンすることに投票しました(CまたはC ++コードを記述する場合は、ここではトピックから外れているため、cおよびc ++タグを削除しました)。「そのような機能はないので、プログラムする必要があります」というのは、ここでは適切な答えです。ただし、正しくない場合を除きます。良い答えは、Tektronixに言及し、w3mのようにターミナルウィンドウに描画することです。
Gilles「SO-邪悪なことをやめなさい」

1
@ギレスは十分に公正で、再開しました。SOへの移行が進行中であり、そこで歓迎されなかったため、クローズしました。
terdon

回答:


10

端末は文字セルディスプレイであり、ピクセルグラフィックの描画をサポートしていません。X11で実行している場合でも同様です。Xサーバーと直接通信するときに個々のピクセルを描画することは確かに可能ですが、プログラムが端末と通信している場合は、端末に文字の表示を要求することしかできません。

テキストではなくグラフィックを表示するには、Xサーバーと直接対話するプログラムを作成する必要があります。これは通常、GTKQt、またはwxWidgetsなどのUIツールキットライブラリを介して行われます。


7
端末にはさまざまな種類があり、一部にはグラフィカル機能(のTektronixモードxtermやの画像の埋め込みなどterminology)があります。注意端末はまた、X11端子(テクトロニクスのもののようなものの後継)を参照
ステファンChazelas

2
涼しい!一部の愛好家は、xtermに3Dティーポットを描きます=)dim13.org/2009/02/teapot
gena2x 14

端末が文字の「描画」しかできない場合は、ピクセルを文字にして描画できるようにする必要があります...


1

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

1

Wyzardの回答で述べられている主要なウィジェットツールキット(GTK、Qt、WxWidgets)に加えて、SFMLlibSDLなどのメディア指向のライブラリを検討することもできます。グラフィカル出力(ほとんど相互作用がない)が必要な場合は、CairoGraphicsを検討することもできます。

場合によっては、パイプ(例:popen)を使用するか、コマンドラインでGNUplotGraphVizなどのコマンドユーティリティを使用します。

また、ブラウザのグラフィック機能の使用を検討することもできます。たとえば、専用のWebアプリケーションをコーディングする(WtlibonionなどのHTTPサーバーライブラリを使用し、AJAX、SVG、HTML5、canvas、websocketなどのWebテクノロジを使用する)

しかし、ほとんどのターミナルエミュレータにはグラフィック機能がないか、またはほとんどありません(したがって、本物のピクセルグラフィックはありません)。したがって、実際には、ディスプレイサーバーX11Wayland、...)と対話するプログラムが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.