From 8733acc4a69a55162cfd62a6bf2705dfdb72c5ee Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 4 Aug 2016 23:08:57 -0400 Subject: Include gegl example code to read and write files. --- src/gegltest.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/gegltest.c diff --git a/src/gegltest.c b/src/gegltest.c new file mode 100644 index 0000000..4201556 --- /dev/null +++ b/src/gegltest.c @@ -0,0 +1,59 @@ +#include + +gint +main (gint argc, + gchar **argv) +{ + GeglNode *graph, *src, *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_node_new (); + src = gegl_node_new_child (graph, + "operation", "gegl:load", + "path", argv[1], + NULL); + sink = gegl_node_new_child (graph, + "operation", "gegl:buffer-sink", + "buffer", &buffer, + NULL); + + gegl_node_link_many (src, sink, NULL); + + gegl_node_process (sink); + g_object_unref (graph); + + /* FIXME: Currently a buffer will always be returned, even if the source is missing */ + if (!buffer) + { + g_print ("Failed to open %s\n", argv[1]); + return 1; + } + + graph = gegl_node_new (); + src = gegl_node_new_child (graph, + "operation", "gegl:buffer-source", + "buffer", buffer, + NULL); + sink = gegl_node_new_child (graph, + "operation", "gegl:save", + "path", argv[2], + NULL); + + gegl_node_link_many (src, sink, NULL); + + gegl_node_process (sink); + g_object_unref (graph); + + g_object_unref (buffer); + gegl_exit (); + return 0; +} -- cgit v1.2.3