/* gcc gegl-sampler-demystify-01.c $(pkg-config --cflags --libs gegl-0.4) */ #include gint main (void) { GeglBuffer *buffer; GeglNode *graph; GeglNode *scale; GeglNode *src; GeglNode *sink; GeglRectangle bbox; gegl_init (NULL, NULL); graph = gegl_node_new (); src = gegl_node_new_child (graph, "operation", "gegl:load", "path", "/home/rishi/Pictures/epiphany-medium-greyscale-hidpi.png", NULL); scale = gegl_node_new_child (graph, "operation", "gegl:scale-size", "x", 640.0, "y", 640.0, NULL); sink = gegl_node_new_child (graph, "operation", "gegl:buffer-sink", NULL); gegl_node_link_many (src, scale, sink, NULL); gegl_node_set (sink, "buffer", &buffer, NULL); gegl_node_process (sink); bbox = *gegl_buffer_get_extent (buffer); g_message ("buffer: (%d, %d), %dx%d", bbox.x, bbox.y, bbox.width, bbox.height); g_object_unref (buffer); g_object_unref (graph); gegl_exit (); return 0; }