PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GTK -Bild aus Speicher in Window??



tin-dong
20-06-2005, 13:30
Hi Leute,

könnte jemand ein GTK-Beispielcode posten mit dem man ein Bild, welches sich noch im ram befindet (also noch nicht als Datei gespeichert ist) in einem Window wieder ausgibt! Ich sitze schon seit Wochen vor dem Problem und komme nicht weiter. Das Bild habe ich als RAW-Datensatz kann es aber auch als RGB und YUV konvertieren.

Ich hoffe Ihr könnt mir helfen

tin-dong

_Martin
28-06-2005, 16:43
Hallo.
Wie man Bilder im RAW,RGB oder YUV Format anzeigen kann weiss ich leider nicht, ich weiss nicht mal was das für Bild-Formate sind.

Ich habe hier nur ein Beispiel wie man bilder im Pixmap-Format anzeigen kann:

/*gcc image.c -o image `gtk-config --cflags --libs`*/
#include <gtk/gtk.h>

/* XPM */
static char *dummy[]={
"24 24 12 1",
". c None",
"# c #000000",
"e c #000083",
"g c #0000ff",
"a c #008100",
"c c #00ff00",
"i c #838100",
"h c #838183",
"d c #ff0000",
"b c #ff00ff",
"f c #ffff00",
"j c #ffffff",
"........................",
"########################",
"#aaaaaaa#bbbbbbb#cccccc#",
"#aaaaaaa#bbbbbbb#cccccc#",
"#aaaaaaa#bbbbbbb#cccccc#",
"#aaaaaaa#bbbbbbb#cccccc#",
"#aaaaaaa#bbbbbbb#cccccc#",
"#aaaaaaa#bbbbbbb#cccccc#",
"########################",
"#ddddddd#eeeeeee#ffffff#",
"#ddddddd#eeeeeee#ffffff#",
"#ddddddd#eeeeeee#ffffff#",
"#ddddddd#eeeeeee#ffffff#",
"#ddddddd#eeeeeee#ffffff#",
"#ddddddd#eeeeeee#ffffff#",
"########################",
"#ggggggg#hhhhhhh#iiiiii#",
"#ggggggg#hhhhhhh#iiiiii#",
"#ggggggg#hhhhhhh#iiiiii#",
"#ggggggg#hhhhhhh#iiiiii#",
"#ggggggg#hhhhhhh#iiiiii#",
"#ggggggg#hhhhhhh#iiiiii#",
"########################",
"jjjjjjjjjjjjjjjjjjjjjjjj"};


int main( int argc, char *argv[] )
{
GtkWidget *window, *image;
GdkPixmap *pixmap1,*pixmap2;
GdkColor color;
GdkBitmap *mask;
GtkStyle *style;

gtk_init( &argc, &argv );
window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
style = gtk_widget_get_style(window);
color.red=0;
color.blue=0;
color.green=0;

/*Im Speicher, braucht nur Zeiger auf die Stelle wo sich das Bild befindet*/
pixmap1=gdk_pixmap_create_from_xpm_d(window->window,&mask,&style->bg[GTK_STATE_NORMAL],(gchar **)dummy);
/*Oder als Datei, der Name der Datei ist erfordelich*/
//pixmap2=gdk_pixmap_create_from_xpm(window->window,&mask,&color,"dummy.xpm");

image = gtk_pixmap_new( pixmap1, mask );

gtk_container_add( GTK_CONTAINER( window ), image );
gtk_widget_show_all( window );
gtk_main();

return 0;
}

tin-dong
30-06-2005, 12:34
Alles klar Viel Dank!!!

tin-dong