#include gint main (gint argc, gchar **argv) { GeglNode *graph, *sink; GeglBuffer *buffer = NULL; gegl_init (&argc, &argv); if (argc != 3) { g_print ("GEGL based image conversion tool\n"); g_print ("Usage: %s \n", argv[0]); return 1; } graph = gegl_graph (sink=gegl_node ("gegl:buffer-sink", "buffer", &buffer, NULL, gegl_node ("gegl:load", "path", argv[1], NULL))); gegl_node_process (sink); g_object_unref (graph); if (!buffer) { g_print ("Failed to open %s\n", argv[1]); return 1; } graph = gegl_graph (sink=gegl_node ("gegl:save", "path", argv[2], NULL, gegl_node ("gegl:buffer-source", "buffer", buffer, NULL))); gegl_node_process (sink); g_object_unref (buffer); g_object_unref (buffer); /* XXX: why is two unrefs needed here? */ g_object_unref (graph); gegl_exit (); return 0; }