python-fu script

View: New views
6 Messages — Rating Filter:   Alert me  

python-fu script

by peter kostov-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I am trying to write a python script. The problematic part of it is:

--- snip ---

def run_resynthesize(image, drawable, vtileable=1, htileable=1):
        defalut_args = (0, 0, 0, 0, 0.50, 0.12, 30, 200)
        args = list(defalut_args)

        pdb.plug_in_resynthesizer(image,drawable,vtileable,htileable,*args)

def create_tileable(location, file_type_search, create_nmap,
texture_name, normal_map_name, save_as_type, new_img_location):
        images = get_images(file_type_search, location)
        num_images = len(images)
        for i in range(num_images):
                image = pdb.gimp_file_load(images[i]['image_file'],
images[i]['image_file'])

                #drawable = PF_DRAWABLE
                drawable = pdb.gimp_image_get_active_drawable(image)
                #print drawable
                run_resynthesize(image,drawable,1,1)


--- snip ---

I am getting a window listig several errors like this:

Procedure 'gimp-drawable-width' has been called with an invalid ID for
argument 'drawable'. Most likely a plug-in is trying to work on a layer
that doesn't exist any longer.

And an 'RuntimeError: execution error' message on the console.

I have googled, but not managed to find any answer :(

How should I get the 'drawable' and what exactly should I feed to the
resynthesize plug-in as 'DRAWABLE'?

Please, please help!

Kind regards,

Peter


--

-------
Boryana & Peter Kostovi,
web design & webdevelopment
home site: http://bgwebdeveloper.com
_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Re: python-fu script

by Sven Neumann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Sat, 2008-05-10 at 17:00 +0300, peter kostov wrote:

> Procedure 'gimp-drawable-width' has been called with an invalid ID for
> argument 'drawable'. Most likely a plug-in is trying to work on a layer
> that doesn't exist any longer.
>
> And an 'RuntimeError: execution error' message on the console.
>
> I have googled, but not managed to find any answer :(
>
> How should I get the 'drawable' and what exactly should I feed to the
> resynthesize plug-in as 'DRAWABLE'?

The drawable you are passing looks just right. But doesn't the
resynthesizer PDB procedure take run-mode as its first parameter?


Sven


_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Re: python-fu script

by Joao S. O. Bueno Calligaris :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sat 10 May 2008 12:45:09 pm Sven Neumann wrote:

> Hi,
>
> On Sat, 2008-05-10 at 17:00 +0300, peter kostov wrote:
> > Procedure 'gimp-drawable-width' has been called with an invalid ID for
> > argument 'drawable'. Most likely a plug-in is trying to work on a layer
> > that doesn't exist any longer.
> >
> > And an 'RuntimeError: execution error' message on the console.
> >
> > I have googled, but not managed to find any answer :(
> >
> > How should I get the 'drawable' and what exactly should I feed to the
> > resynthesize plug-in as 'DRAWABLE'?
>
> The drawable you are passing looks just right. But doesn't the
> resynthesizer PDB procedure take run-mode as its first parameter?
>
When caling PDB stuff from a python plug-in, the run-mode
parameter is always omited and assumed to be "non-interactive"


>
> Sven
>
>
> _______________________________________________
> Gimp-user mailing list
> Gimp-user@...
> https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user


_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Re: python-fu script

by Joao S. O. Bueno Calligaris :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sat 10 May 2008 11:00:57 am peter kostov wrote:

> Hello,
>
> I am trying to write a python script. The problematic part of it is:
>
> --- snip ---
>
> def run_resynthesize(image, drawable, vtileable=1, htileable=1):
> defalut_args = (0, 0, 0, 0, 0.50, 0.12, 30, 200)
> args = list(defalut_args)
>
> pdb.plug_in_resynthesizer(image,drawable,vtileable,htileable,*args)
>
> def create_tileable(location, file_type_search, create_nmap,
> texture_name, normal_map_name, save_as_type, new_img_location):
> images = get_images(file_type_search, location)
> num_images = len(images)
> for i in range(num_images):
> image = pdb.gimp_file_load(images[i]['image_file'],
> images[i]['image_file'])
>
> #drawable = PF_DRAWABLE
> drawable = pdb.gimp_image_get_active_drawable(image)
> #print drawable
> run_resynthesize(image,drawable,1,1)
>
>
> --- snip ---
>
> I am getting a window listig several errors like this:
>
> Procedure 'gimp-drawable-width' has been called with an invalid ID for
> argument 'drawable'. Most likely a plug-in is trying to work on a layer
> that doesn't exist any longer.

Hi. You should check the parameters passed to the resynthesizer plug-in
I'd recomend testing it with one image from the python console, and check if
the same error is raised

Once you have an image object, you can get it's top layer with
image.layers[0]  - no need to call pdb.gimp_image_get_active_drawable

To work, from the python console, on an image already open in gimp, just
make a call to gimp.image_list()   - it return a list of all open images as
python objects.

        js
        -><-

>
> And an 'RuntimeError: execution error' message on the console.
>
> I have googled, but not managed to find any answer :(
>
> How should I get the 'drawable' and what exactly should I feed to the
> resynthesize plug-in as 'DRAWABLE'?
>
> Please, please help!
>
> Kind regards,
>
> Peter


_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Re: python-fu script

by David Gowers :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, May 11, 2008 at 7:27 AM, Joao S. O. Bueno <gwidion@...> wrote:
>> The drawable you are passing looks just right. But doesn't the
>> resynthesizer PDB procedure take run-mode as its first parameter?
>>
> When caling PDB stuff from a python plug-in, the run-mode
> parameter is always omited and assumed to be "non-interactive"

For the sake of completeness, I'll mention that you *can* use other
run modes, by specifying the kwarg 'run_mode'
like this

pdb.plug_in_gauss (i, i.layers[0], 4, 4, 1, run_mode = 0)

^^^
Brings up the normal interactive dialog.
_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Re: python-fu script

by Sven Neumann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Sat, 2008-05-10 at 18:57 -0300, Joao S. O. Bueno wrote:

> When caling PDB stuff from a python plug-in, the run-mode
> parameter is always omited and assumed to be "non-interactive"

That is a very bad design decision. How are you supposed to call a PDB
function interactively then?


Sven


_______________________________________________
Gimp-user mailing list
Gimp-user@...
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user