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 |
}
|