2009-03-31 4 views
2

저는 수치 계산을 위해서는 C가 마음에 들지만 그래픽 프로그래밍에는 적합하지 않습니다. 나는 리눅스 (gcc, 우분투)에 대한 명령 행 프로그램에서 3 RGB 행렬에 의해 Ny에 의해 Nx를 가지고 있으며 이미지로 그 창을 팝업하고 싶다. 가장 쉬운 방법은 무엇입니까? 이미지를 자주 업데이트 할 것이므로 상대적으로 빠릅니다.C/Linux에서 이미지를 표시하는 가장 쉬운 방법은 무엇입니까?

감사

답변

0

는 X 윈도우를 생성하는 픽스맵에 이미지를 그립니다 (또는 프레임 버퍼를 할당)하고, 창 픽스맵 물품.

또는 display 명령의 ImageMagick 구현을 살펴보십시오.

GTK +를 배우는 데 신경 쓰지 않는다면 가장 직접적인 방법 일 수 있습니다. 창과 드로어 블을 생성하고 드로어 블을 창 자식으로 만듭니다. 이미지의 픽스맵을 작성하고 drawable에 그립니다. 카이로는 이것을 단순화 할 것입니다. 이미지 포맷을 조정하기 만하면되기 때문입니다.

+0

Qt는 그래픽 프로그래밍 초보자를위한 GTK보다 쉽습니다 ... C++로 작성되었지만 C 바인딩이 있다고 생각합니다. –

1

C 언어 자체에는 그래픽 기능이 내장되어 있지 않습니다. Qt, gtk, wxWidgets 등과 같은 그래픽 툴킷을 사용할 수 있습니다. 또한 이미지 파일 (BMP is pretty simple)을 만든 다음 응용 프로그램을 실행 (fork 및 exec 사용)하여 볼 수 있습니다. 우분투는 기본적으로 gnome을 사용합니다. 생성 된 파일의 이름 인 명령 줄 인수로 "gnome-open"을 포크 할 수 있으며 gnome-open은 파일 유형과 관련된 응용 프로그램을 시작합니다.

1

아마도 과학적인 컴퓨팅을 수행하고 있으며 결과를 표시하는 빠른 방법이 필요합니다.

무언가는 gnuplot과 같이 일반 창 도구 키트를 학습하는 것보다 나은 주행 거리를 제공 할 수 있습니다. 일반적인 플로팅 유틸리티이며 데이터 세트를 표시하는 데 특히 적합합니다.

2

이미지 magick을 사용해 볼 수 있습니다. 최소한의 작업으로 이미지를 x 창에 표시하는 기능이있는 것 같습니다. 나는 과거에 이미지 magick을 사용해 왔으며 그것을 기쁘게 생각한다. 나는이 특정한 기능을 시도하지 않았다. 여기

Display function

+0

Seconded. ImageMagick은 아마도 C에서 이것을하는 가장 쉬운 방법 일 것이다. – Benson

6

표시하고 Gtk2로는 Gtk2 사이트에 당신은 (A tutorial 포함) 자세한 정보를 찾을 수 있습니다 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에서 작업하거나 이미지 파일을 상당히 간단하게 생성 할 수 있습니다. 벡터 용으로 설계되었으므로 클리핑, 글꼴 및 크기 조정도 잘 처리됩니다.

관련 문제