2009-03-31 8 views
2

私は数値計算のためにはCがとても快適ですが、グラフィカルプログラミングには向いていません。私は、Linux(gcc、ubuntu)用のコマンドラインプログラムで3 RGBマトリクスでNy by Nyを持っており、画像としてウィンドウをポップアップしたい。これを行う最も簡単な方法は何ですか?イメージを頻繁に更新するので比較的速くなければなりません。C/Linuxで画像を表示する最も簡単な方法は何ですか?

おかげ

答えて

0

は、ピックスマップに画像を描画Xウィンドウを作成(またはフレームバッファを割り当て)、およびウィンドウにピックスマップを書き込みます。

またはImageMagickのdisplayコマンドの実装を見てください。

あなたがGTK +を習得しても大丈夫なら、それは最も簡単な方法かもしれません。ウィンドウとドロウアブルを作成し、ドロウアブルをウィンドウの子にします。イメージのピクスマップを作成し、ドロウアブルに描画します。カイロはこれを単純化します。イメージフォーマットを調整するだけでよいからです。

+0

初心者の方はGTKよりもQtがおそらく簡単です... C++で書かれていますが、Cバインディングがあると思います。 –

1

C言語自体には、グラフィックス機能が組み込まれていません。 Qt、gtk、wxWidgetsなどのグラフィックスツールキットを使用することもできます。イメージファイル(BMP is pretty simple)を作成し、アプリケーションを起動して(forkとexecを使用して)アプリケーションを表示することもできます。 Ubuntuはデフォルトでgnomeを使用しています。作成したファイルの名前であるコマンドライン引数で "gnome-open"をforkし、gnome-openはそのファイルタイプに関連付けられているアプリケーションを起動します。

1

科学的な計算をしていて、結果を表示するための簡単な方法が必要なようです。

gnuplotのようなものは、一般的なウィンドウツールキットの学習よりも優れた走行距離を提供します。それは一般的なプロットユーティリティであり、特にデータセットの表示に適しています。

2

イメージmagickを試してみると、最小限の作業でxウィンドウにイメージを表示する機能があるようです。私は過去にイメージマジックを使用しており、それに満足しています。私はこの特定の機能を試していません。ここで

Display function

+0

Seconded。 ImageMagickはおそらくCからこれを行う最も簡単な方法です。 – Benson

6

あなたはGtk2サイト上(tutorialを含む)より多くの情報を見つけることができますどのように表示し、画像のGtk2でC.を使用しています。ここで

#include <gtk/gtk.h> 

void destroy(void) { 
    gtk_main_quit(); 
} 

int main (int argc, char** argv) { 
    GtkWidget* window; 
    GtkWidget* image; 

    gtk_init (&argc, &argv); 


    window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
    image = gtk_image_new_from_file(argv[1]); 

    gtk_signal_connect(GTK_OBJECT (window), "destroy", 
      GTK_SIGNAL_FUNC (destroy), NULL); 

    gtk_container_add(GTK_CONTAINER (window), image); 

    gtk_widget_show_all(window); 

    gtk_main(); 

    return 0; 
} 

はそれをコンパイルする方法です:

gcc -Wall img.c -o img `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` 
0

カイログラフィックスライブラリも行くには良い方法である、http://cairographics.org/を参照してください。クロスプラットフォームであり、かなり効率的で、Gnome/KDE/Windowsで作業したり、イメージファイルをかなり簡単に生成することができます。ベクトル用に設計されているので、クリッピングやフォント、スケーリングもうまく処理できます。

関連する問題