RSS/Atom feed Twitter
Site is read-only, email is disabled

having trouble with gegl_node_to_xml

This discussion is connected to the gegl-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

5 of 5 messages available
Toggle history

Please log in to manage your subscriptions.

having trouble with gegl_node_to_xml Joerg Beyer 28 Aug 08:34
  having trouble with gegl_node_to_xml Jon Nordby 28 Aug 10:40
   having trouble with gegl_node_to_xml Joerg Beyer 28 Aug 11:36
    having trouble with gegl_node_to_xml Jon Nordby 28 Aug 11:59
     having trouble with gegl_node_to_xml Joerg Beyer 28 Aug 20:07
Joerg Beyer
2011-08-28 08:34:40 UTC (over 13 years ago)

having trouble with gegl_node_to_xml

hello,

I am having trouble to save gegl operations to repeat them later. I think, that gegl_node_to_xml is the operation I am looking for, but this can be wrong.

I wrote this small program:

#include #include

gint
main (gint argc,
gchar **argv)
{
GeglNode *gegl, *gn_load, *gn_save, *gn_op; gchar* xmltext;

g_thread_init (NULL); gegl_init (&argc, &argv);

gegl = gegl_node_new (); gn_load = gegl_node_new_child(gegl, "operation", "gegl:load", "path", "bsp-900x600.jpg", NULL);
gn_save = gegl_node_new_child(gegl, "operation", "gegl:jpg-save", "path", "out.jpg", NULL);
gn_op = gegl_node_new_child(gegl, "operation", "gegl:unsharp-mask", "std-dev", 1.2, "scale", 8.0, NULL); gegl_node_link_many (gn_load, gn_op, gn_save, NULL); gegl_node_process (gn_save);

gegl_node_to_xml(gegl, xmltext); printf("xmltext: %s\n", xmltext);

g_object_unref (gegl);

gegl_exit (); return 0;
}

These are the library version ldd told me:

linux-gate.so.1 => (0xb78a1000) libgegl-0.1.so.0 => /usr/lib/libgegl-0.1.so.0 (0xb782c000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb76cb000) libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb7683000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb767e000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb757b000) libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb7577000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb756e000) libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7496000) libbabl-0.1.so.0 => /usr/local/lib/libbabl-0.1.so.0 (0xb7448000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7422000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7409000) /lib/ld-linux.so.2 (0xb78a2000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb73f4000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73de000) libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb73c3000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73bf000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb7380000)

And I hoped, that xmltext would be string, containing a xml tree for this little gegl operation. unfortunally all I got where a handful of binary bytes - not the xml text (somthing like "....") I hoped for.

Any hints for me?

thanks in advance Joerg

Jon Nordby
2011-08-28 10:40:29 UTC (over 13 years ago)

having trouble with gegl_node_to_xml

On 28 August 2011 10:34, Joerg Beyer wrote:

hello,

I am having trouble to save gegl operations to repeat them later. I think, that gegl_node_to_xml is the operation I am looking for, but this can be wrong.

I wrote this small program:

#include #include

gint
main (gint argc,
     gchar **argv)
{
   GeglNode *gegl, *gn_load, *gn_save, *gn_op;    gchar* xmltext;

   g_thread_init (NULL);    gegl_init (&argc, &argv);

   gegl = gegl_node_new ();    gn_load = gegl_node_new_child(gegl, "operation", "gegl:load", "path", "bsp-900x600.jpg", NULL);
   gn_save = gegl_node_new_child(gegl, "operation", "gegl:jpg-save", "path", "out.jpg", NULL);
   gn_op   = gegl_node_new_child(gegl, "operation", "gegl:unsharp-mask", "std-dev", 1.2, "scale", 8.0, NULL);    gegl_node_link_many (gn_load, gn_op, gn_save, NULL);    gegl_node_process (gn_save);

   gegl_node_to_xml(gegl, xmltext);    printf("xmltext: %s\n", xmltext);

You probably want to do xmltext = gegl_node_to_xml(gegl, pwd); or similar. Where pwd is the current working directory. See the documentation at http://gegl.org/api.html#gegl_node_to_xml

   g_object_unref (gegl);

   gegl_exit ();    return 0;
}

These are the library version ldd told me:

   linux-gate.so.1 =>  (0xb78a1000)    libgegl-0.1.so.0 => /usr/lib/libgegl-0.1.so.0 (0xb782c000)    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb76cb000)    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb7683000)
   libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb767e000)
   libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb757b000)    libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb7577000)
   librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb756e000)    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7496000)    libbabl-0.1.so.0 => /usr/local/lib/libbabl-0.1.so.0 (0xb7448000)    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7422000)    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7409000)    /lib/ld-linux.so.2 (0xb78a2000)
   libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb73f4000)    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73de000)    libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb73c3000)    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73bf000)    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb7380000)

And I hoped, that xmltext would be string, containing a xml tree for this little gegl operation. unfortunally all I got where a handful of binary bytes - not the xml text (somthing like "....") I hoped for.

Any hints for me?

   thanks in advance    Joerg

_______________________________________________ Gegl-developer mailing list
Gegl-developer@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer

Joerg Beyer
2011-08-28 11:36:47 UTC (over 13 years ago)

having trouble with gegl_node_to_xml

Am 28.08.2011 12:40, schrieb Jon Nordby:

On 28 August 2011 10:34, Joerg Beyer wrote:

hello,

I am having trouble to save gegl operations to repeat them later. I think, that gegl_node_to_xml is the operation I am looking for, but this can be wrong.

I wrote this small program:

#include #include

gint
main (gint argc,
gchar **argv)
{
GeglNode *gegl, *gn_load, *gn_save, *gn_op; gchar* xmltext;

g_thread_init (NULL); gegl_init (&argc, &argv);

gegl = gegl_node_new (); gn_load = gegl_node_new_child(gegl, "operation", "gegl:load", "path", "bsp-900x600.jpg", NULL);
gn_save = gegl_node_new_child(gegl, "operation", "gegl:jpg-save", "path", "out.jpg", NULL);
gn_op = gegl_node_new_child(gegl, "operation", "gegl:unsharp-mask", "std-dev", 1.2, "scale", 8.0, NULL); gegl_node_link_many (gn_load, gn_op, gn_save, NULL); gegl_node_process (gn_save);

gegl_node_to_xml(gegl, xmltext); printf("xmltext: %s\n", xmltext);

You probably want to do xmltext = gegl_node_to_xml(gegl, pwd); or similar. Where pwd is the current working directory. See the documentation at http://gegl.org/api.html#gegl_node_to_xml

when I change it this way:

xmltext = gegl_node_to_xml(gegl, "/home/joerg/src/geglex"); printf("xmltext: %s\n", xmltext);

then I get only an empty node as output:

xmltext:

is this the expected output? I thought, that the node named "gegl" would contain the other nodes (gn_load, gn_op and gn_save) but I am new to gegl and may be wrong. I tried to print the complete transformation to xml.

What would give the entire tree of the operations?

Joerg

g_object_unref (gegl);

gegl_exit (); return 0;
}

These are the library version ldd told me:

linux-gate.so.1 => (0xb78a1000) libgegl-0.1.so.0 => /usr/lib/libgegl-0.1.so.0 (0xb782c000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb76cb000) libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb7683000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb767e000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb757b000) libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb7577000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb756e000) libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7496000) libbabl-0.1.so.0 => /usr/local/lib/libbabl-0.1.so.0 (0xb7448000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7422000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7409000) /lib/ld-linux.so.2 (0xb78a2000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb73f4000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73de000) libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb73c3000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73bf000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb7380000)

And I hoped, that xmltext would be string, containing a xml tree for this little gegl operation. unfortunally all I got where a handful of binary bytes - not the xml text (somthing like "....") I hoped for.

Any hints for me?

thanks in advance Joerg

_______________________________________________ Gegl-developer mailing list
Gegl-developer@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer

Jon Nordby
2011-08-28 11:59:49 UTC (over 13 years ago)

having trouble with gegl_node_to_xml

On 28 August 2011 13:36, Joerg Beyer wrote:

Am 28.08.2011 12:40, schrieb Jon Nordby:

On 28 August 2011 10:34, Joerg Beyer wrote:

hello,

I am having trouble to save gegl operations to repeat them later. I think, that gegl_node_to_xml is the operation I am looking for, but this can be wrong.

I wrote this small program:

#include #include

gint
main (gint argc,
     gchar **argv)
{
   GeglNode *gegl, *gn_load, *gn_save, *gn_op;    gchar* xmltext;

   g_thread_init (NULL);    gegl_init (&argc, &argv);

   gegl = gegl_node_new ();    gn_load = gegl_node_new_child(gegl, "operation", "gegl:load", "path", "bsp-900x600.jpg", NULL);
   gn_save = gegl_node_new_child(gegl, "operation", "gegl:jpg-save", "path", "out.jpg", NULL);
   gn_op   = gegl_node_new_child(gegl, "operation", "gegl:unsharp-mask", "std-dev", 1.2, "scale", 8.0, NULL);    gegl_node_link_many (gn_load, gn_op, gn_save, NULL);    gegl_node_process (gn_save);

   gegl_node_to_xml(gegl, xmltext);    printf("xmltext: %s\n", xmltext);

You probably want to do xmltext = gegl_node_to_xml(gegl, pwd); or similar. Where pwd is the current working directory. See the documentation at http://gegl.org/api.html#gegl_node_to_xml

when I change it this way:

   xmltext = gegl_node_to_xml(gegl, "/home/joerg/src/geglex");    printf("xmltext: %s\n", xmltext);

then I get only an empty node as output:

xmltext:

is this the expected output? I thought, that the node named "gegl" would contain the other nodes (gn_load, gn_op and gn_save) but I am new to gegl and may be wrong. I tried to print the complete transformation to xml.

What would give the entire tree of the operations?

I don't think you read the documentation I linked you ;) "To export a gegl graph, connect the internal output node to an output proxy (see gegl_node_get_output_proxy.) and use the proxy node as the basis for the serialization."

   Joerg

   g_object_unref (gegl);

   gegl_exit ();    return 0;
}

These are the library version ldd told me:

   linux-gate.so.1 =>  (0xb78a1000)    libgegl-0.1.so.0 => /usr/lib/libgegl-0.1.so.0 (0xb782c000)    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb76cb000)    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb7683000)
   libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb767e000)
   libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xb757b000)    libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb7577000)
   librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb756e000)    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7496000)    libbabl-0.1.so.0 => /usr/local/lib/libbabl-0.1.so.0 (0xb7448000)    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7422000)    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7409000)    /lib/ld-linux.so.2 (0xb78a2000)
   libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb73f4000)    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73de000)    libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb73c3000)    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73bf000)    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb7380000)

And I hoped, that xmltext would be string, containing a xml tree for this little gegl operation. unfortunally all I got where a handful of binary bytes - not the xml text (somthing like "....") I hoped for.

Any hints for me?

   thanks in advance    Joerg

_______________________________________________ Gegl-developer mailing list
Gegl-developer@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer

Joerg Beyer
2011-08-28 20:07:39 UTC (over 13 years ago)

having trouble with gegl_node_to_xml

Am 28.08.2011 13:59, schrieb Jon Nordby:

On 28 August 2011 13:36, Joerg Beyer wrote:

Am 28.08.2011 12:40, schrieb Jon Nordby:

On 28 August 2011 10:34, Joerg Beyer wrote:

hello,

I am having trouble to save gegl operations to repeat them later. I think, that gegl_node_to_xml is the operation I am looking for, but this can be wrong.

I wrote this small program:

#include #include

gint
main (gint argc,
gchar **argv)
{
GeglNode *gegl, *gn_load, *gn_save, *gn_op; gchar* xmltext;

g_thread_init (NULL); gegl_init (&argc, &argv);

gegl = gegl_node_new (); gn_load = gegl_node_new_child(gegl, "operation", "gegl:load", "path", "bsp-900x600.jpg", NULL);
gn_save = gegl_node_new_child(gegl, "operation", "gegl:jpg-save", "path", "out.jpg", NULL);
gn_op = gegl_node_new_child(gegl, "operation", "gegl:unsharp-mask", "std-dev", 1.2, "scale", 8.0, NULL); gegl_node_link_many (gn_load, gn_op, gn_save, NULL); gegl_node_process (gn_save);

gegl_node_to_xml(gegl, xmltext); printf("xmltext: %s\n", xmltext);

You probably want to do xmltext = gegl_node_to_xml(gegl, pwd); or similar. Where pwd is the current working directory. See the documentation at http://gegl.org/api.html#gegl_node_to_xml

when I change it this way:

xmltext = gegl_node_to_xml(gegl, "/home/joerg/src/geglex"); printf("xmltext: %s\n", xmltext);

then I get only an empty node as output:

xmltext:

is this the expected output? I thought, that the node named "gegl" would contain the other nodes (gn_load, gn_op and gn_save) but I am new to gegl and may be wrong. I tried to print the complete transformation to xml.

What would give the entire tree of the operations?

I don't think you read the documentation I linked you ;) "To export a gegl graph, connect the internal output node to an output proxy (see gegl_node_get_output_proxy.) and use the proxy node as the basis for the serialization."

thanks for your answers.

well, I read the API docs of this functions, but since I am not familiar with the conventions used (what is a pad, how are the nodes connected - I saw the glossary...) I have my difficulties to understand them. I also found no simple example - gegl_node_to_xml appears 19 times in the gegl sources, but is used only in gegl (and I am not sure how) and the in bindings. A google search for other source code snippets does not show other use cases.

Are there small programs, smaller and simpler than gimp, that use gegl? I would try and read them for better understanding.

yours Joerg