On 19.06.2014 22:09, Ed . wrote:
It is not a PDB function, but a libgimp (C) function. Since pygimp can
do gimpui stuff (also C functions), there is no conceptual reason why
pygimp shouldn't also handle gimpexport (which is where
gimp_export_image lives).
Which functions in GIMP goes to PDB, and which stays only in libgimp?
As I understand, libgimp should contain _all_ functionality, that may be
needed for external C plugins. So it's "low-level" library.
PDB functions are designed to be called from scripts for automation and
easer writing custom plugins in Scheme/Python/Perl scripts.
So there mostly should be "high-level" functions, since there is no
point in calling "low-level" operations, like set_pixel(), due to
performance overhead of PDB.
gimp_export_image() is "high-level" function: it does several operations
on image as whole and optionally asks user for some input.
If gimp_export_image() would be available though PDB, it could be called
from any "fu"-script, that can call PDB functions, and there would be no
need to export it specifically in Python, Perl, Ruby, C#...
Correct me if I'm wrong, since I'm new to PDB and GIMP development.
I thought that in Python it was straightforward to access C functions?
This is simply a function that returns an integer, albeit one that
uses the GIMP UI - which pygimp already can initialise.
Best way to use C functions from Python is to write wrapper module in C
that will export methods as Python functions/classes (just as
GIMP-Python does).
Also you can load shared object and call C-function directly using
libffi library (presented as ctypes module in Python), but this
error-prone and really hackish way.
-----Original Message----- From: Vladimir Rutsky
Sent: Thursday, June 19, 2014 6:24 PM
To: João Sebastião de Oliveira Bueno
Cc: Ed . ; gimp-developer
Subject: Re: How to call gimp_export_image() from
Pythonplugin
On Wed, Jun 18, 2014 at 9:52 PM, Joao S. O. Bueno <gwidion@xxxxxxxxx>
wrote:
IS it available throught the PDB?
Most GIMP - Python functions are done via PDB, except pixel-region
manipulation stuff.
If it is not in the PDB, it is not availabl in GIMP 2.8 - the current
GIMP Python structure has to
special cases a lot of things to work aside from the PDB, and doing so
is not minor stuff
done inside a release cycle.
Making the 3-4 above calls are straightforward - I see no reason to
violate the principle of no new features inside a release to add this.
In GIMP 2.10, the export feature will also have to deal with precision
management, and besides this export function, a class of PDB calls
dealing with precision needs
to be added as well.
Joao, Ed,
so gimp_export_image() should be exported to Python though PDB (to all
plugins) or by writing custom export code as done for some functions
to export it only to Python?
--
Vladimir Rutsky
_______________________________________________
gimp-developer-list mailing list
List address: gimp-developer-list@xxxxxxxxx
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives: https://mail.gnome.org/archives/gimp-developer-list