Blame examples/geglbuffer-add-image.c

Packit bc1512
#include <gegl.h>
Packit bc1512
#include <glib/gprintf.h>
Packit bc1512
#include <stdlib.h>
Packit bc1512
Packit bc1512
gint
Packit bc1512
main (gint    argc,
Packit bc1512
      gchar **argv)
Packit bc1512
{
Packit bc1512
  GeglBuffer *buffer; /* instantiate a graph */
Packit bc1512
  GeglNode   *gegl;   /* the gegl graph we're using as a node factor */
Packit bc1512
  GeglNode   *write_buffer,
Packit bc1512
             *shift,
Packit bc1512
             *load;
Packit bc1512
  gchar *in_file;
Packit bc1512
  gchar *buf_file;
Packit bc1512
  gdouble x;
Packit bc1512
  gdouble y;
Packit bc1512
Packit bc1512
  gegl_init (&argc, &argv);  /* initialize the GEGL library */
Packit bc1512
Packit bc1512
Packit bc1512
  if (argv[1]==NULL ||
Packit bc1512
      argv[2]==NULL ||
Packit bc1512
      argv[3]==NULL ||
Packit bc1512
      argv[4]==NULL)
Packit bc1512
    {
Packit bc1512
      g_print ("\nUsage: %s <gegl buffer> <image file> <x> <y>\n"
Packit bc1512
               "\nWrites an image into the GeglBuffer at the specified coordinates\n",
Packit bc1512
               argv[0]);
Packit bc1512
      return -1;
Packit bc1512
    }
Packit bc1512
  buf_file = argv[1];
Packit bc1512
  in_file = argv[2];
Packit bc1512
  x = atof (argv[3]);
Packit bc1512
  y = atof (argv[4]);
Packit bc1512
Packit bc1512
  buffer = gegl_buffer_open (buf_file);
Packit bc1512
  gegl = gegl_node_new ();
Packit bc1512
Packit bc1512
  write_buffer = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:write-buffer",
Packit bc1512
                                    "buffer", buffer,
Packit bc1512
                                    NULL);
Packit bc1512
  shift      = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:translate",
Packit bc1512
                                    "x", x,
Packit bc1512
                                    "y", y,
Packit bc1512
                                    NULL);
Packit bc1512
  load        = gegl_node_new_child (gegl,
Packit bc1512
                                   "operation", "gegl:load",
Packit bc1512
                                   "path", in_file,
Packit bc1512
                                   NULL);
Packit bc1512
Packit bc1512
  gegl_node_link_many (load, shift, write_buffer, NULL);
Packit bc1512
  gegl_node_process (write_buffer);
Packit bc1512
Packit bc1512
  /* free resources used by the graph and the nodes it owns */
Packit bc1512
  g_object_unref (gegl);
Packit bc1512
  g_object_unref (buffer);
Packit bc1512
Packit bc1512
  /* free resources globally used by GEGL */
Packit bc1512
  gegl_exit ();
Packit bc1512
Packit bc1512
  return 0;
Packit bc1512
}