Blame examples/geglbuffer-add-image.c

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