Использование нового GIO API делает это довольно простым:
GFile *file;
GFileInputStream *stream;
GdkPixbuf *pb;
/* TODO: Make async, handle errors, etc */
file = g_file_new_for_uri (uri);
stream = g_file_read (file, NULL, NULL);
pb = gdk_pixbuf_new_from_stream ((GInputStream *)stream, NULL, NULL);