#include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixbuf-loader.h> void des_evt(GtkObject *o, gpointer d) int main(int argc, char **argv) GdkPixbufAnimation *anim; f = fopen("picture.id", "r"); length = fread(data, 1, 8192, f); load = gdk_pixbuf_loader_new(); gdk_pixbuf_loader_write(load, data, length, NULL); anim = gdk_pixbuf_loader_get_animation(load); pix = gtk_image_new_from_animation(anim); gdk_pixbuf_animation_unref(anim); unanim = gdk_pixbuf_loader_get_pixbuf(load); pix = gtk_image_new_from_pixbuf(unanim); gdk_pixbuf_unref(unanim); win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(des_evt), NULL); gtk_container_add(GTK_CONTAINER(win), pix); gdk_pixbuf_loader_close(load, NULL);