[Gegl-developer] having trouble with gegl_node_to_xml

2011-08-28 Thread Joerg Beyer
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 stdio.h
#include gegl.h

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 (0xb738)


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 gegl/gegl) 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


Re: [Gegl-developer] having trouble with gegl_node_to_xml

2011-08-28 Thread Joerg Beyer
Am 28.08.2011 12:40, schrieb Jon Nordby:
 On 28 August 2011 10:34, Joerg Beyer j.be...@web.de 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 stdio.h
 #include gegl.h

 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: ?xml version='1.0' encoding='UTF-8'?
gegl
/gegl

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 (0xb738)


 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 gegl/gegl) 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




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


[Gegl-developer] [Newbie] A few more questions

2011-08-28 Thread Thomas Baruchel
On Sun, 28 Aug 2011, Jon Nordby wrote:
 Using path = - on a load operation is meant to work for this
 purpose. If it does not, that is a regression and is worth a bug
 report.

Thank you for your very quick answer. I have some other questions. First,
I couldn't manage to get it work with the standard input. I tried
with - with '-' and with - like that:

cat Dimocarpus_longan_fruits.jpg | gegl -o - -x geglnode 
operation='gegl:c2g'paramsparam name='radius'384/paramparam 
name='samples'3/paramparam name='iterations'23/paramparam 
name='rgamma'1.8/paramparam name='strength'1/paramparam 
name='gamma'1/param/params/nodenode 
operation='gegl:load'paramsparam 
name='path'-/param/params/node/gegl | display -

cat Dimocarpus_longan_fruits.jpg | gegl -o - -x geglnode 
operation='gegl:c2g'paramsparam name='radius'384/paramparam 
name='samples'3/paramparam name='iterations'23/paramparam 
name='rgamma'1.8/paramparam name='strength'1/paramparam 
name='gamma'1/param/params/nodenode 
operation='gegl:load'paramsparam 
name='path''-'/param/params/node/gegl | display -

cat Dimocarpus_longan_fruits.jpg | gegl -o - -x geglnode 
operation='gegl:c2g'paramsparam name='radius'384/paramparam 
name='samples'3/paramparam name='iterations'23/paramparam 
name='rgamma'1.8/paramparam name='strength'1/paramparam 
name='gamma'1/param/params/nodenode 
operation='gegl:load'paramsparam 
name='path'\-\/param/params/node/gegl | display -

Another question: is there a way to blend layers by combining the HSV or HSL
values (ie. take hue and saturation from one layer and light from the
other one)? ImageMagick calls these modes: Luminize or Colorize; Gimp calls
them Color or Value:
http://www.imagemagick.org/Usage/compose/#hue
http://www.linuxtopia.org/online_books/graphics_tools/gimp_advanced_guide/gimp_guide_node55_004.html

Thank you by advance,
 best regards,

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


Re: [Gegl-developer] having trouble with gegl_node_to_xml

2011-08-28 Thread Jon Nordby
On 28 August 2011 13:36, Joerg Beyer j.be...@web.de wrote:
 Am 28.08.2011 12:40, schrieb Jon Nordby:
 On 28 August 2011 10:34, Joerg Beyer j.be...@web.de 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 stdio.h
 #include gegl.h

 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: ?xml version='1.0' encoding='UTF-8'?
 gegl
 /gegl

 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 (0xb738)


 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 gegl/gegl) 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 - www.jonnor.com
___
Gegl-developer mailing list
Gegl-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer


Re: [Gegl-developer] having trouble with gegl_node_to_xml

2011-08-28 Thread Joerg Beyer
Am 28.08.2011 13:59, schrieb Jon Nordby:
 On 28 August 2011 13:36, Joerg Beyer j.be...@web.de wrote:
 Am 28.08.2011 12:40, schrieb Jon Nordby:
 On 28 August 2011 10:34, Joerg Beyer j.be...@web.de 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 stdio.h
 #include gegl.h

 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: ?xml version='1.0' encoding='UTF-8'?
 gegl
 /gegl

 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

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