2013-06-27 11 views
8

Ho seguito this tutorial e questo è quello che ho fornito finora:Gimp: lo script python non mostrando nel menù

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
#http://www.ibm.com/developerworks/library/os-autogimp/ 

from gimpfu import* 

def plugin_main(timg, tdrawable, maxh=540, maxw=800): 

    currentWidth = tdrawable.width 
    currentHeight = tdrawable.height 

    newWidth = currentWidth 
    newHeight = currentHeight 

    if (maxw < newWidth): 
     newWidth = maxw 
     newHeight = (float(currentHeight)/(float(currentWidth)/newWidth)) 

    if (maxh < newHeight): 
     newHeight = maxh 
     newWidth = (float(currentWidth)/(float(currentHeight)/newHeight)) 

    pdb.gimp_image_scale(timg, newWidth, newHeight) 

register(
     "python_fu_resize", 
     "Saves the image at a maximum width and height", 
     "Saves the image at a maximum width and height", 
     "N N", 
     "N N", 
     "2013", 
     "<Image>/Image/Resize to max...", 
     "*", 
     [], 
     [], 
     plugin_main) 

main() 

Ma il plugin woun't presentarsi nel menu di gimp (sto usando gimp 2.8). Ha dato il file chmod a + x diritti. Potrebbe essere un problema il percorso del file: /.gimp-2.8/plug-ins/src/resize.py? Il src è a causa di eclissi.

risposta

10

Se lo script ha eventuali errori di sintassi, non verrà mostrata nel menu a tutti - il codice di cui sopra ha un errore di sintassi nella prima riga di codice from gimpfu import* (manca uno spazio prima del *)

Un modo semplice per verificare la presenza di errori di sintassi è provare a eseguire lo script come standalone (non riuscirà quando non riesce a trovare il modulo "gimpfu" all'esterno di GIMP, ma a quel punto, la sintassi viene analizzata - un altro modo è utilizzare un'utilità di sfilacciamento come pyflakes per verificare la sintassi

Altri errori di runtime che lo script potrebbe contenere dovrebbero apparire in una finestra a comparsa durante l'esecuzione da GIMP - in quel momento puoi aggiornare il tuo script e riprovare dai menu. Se si modificano i parametri di input o output dal proprio script, tuttavia, è necessario riavviare GIMP.

E sì, la "posizione del file" è un problema - si necessario inserire il codice in una directory specificata per Plug-in nelle preferenze di GIMP - per default questi sono ~/.gimp-2.8/plug-ins/ o /usr/lib[64]/gimp/2.0/plug-ins - senza " src "- se il tuo IDE non ti permette di specificare dove mettere i tuoi file, devi copiarli da soli o aggiungere le dir dirette src nelle preferenze di GIMP.

+0

Apportate alcune modifiche: aggiunto lo spazio mancante e spostato lo script in '/ usr/lib/gimp/2.0/plug-in'. Ora appare nel menu. Grazie. – kyng

+4

Un altro consiglio per il debug: avvia gimp dalla riga di comando e puoi vedere che tipo di messaggi di errore appaiono. – kyng

+5

Assicurarsi che lo script sia eseguibile. L'esecuzione di '$ chmod + x plugin.py' ha risolto il problema per me. – arunkumar