2011-11-19 9 views
9

GIMP consente di creare plug-in in Python, quello che mi piacerebbe fare è chiamare la funzione GIMP come farei in uno di questi plugin ma questo restituisce il seguente errore poiché GIMP non trova nessun GIMP Core in esecuzione da utilizzare .Come utilizzare GIMP all'interno di uno script Python?

LibGimpBase-ERROR **: gimp_wire_write_msg: the wire protocol has not been initialized aborting... 

Mi piacerebbe sapere se è possibile? E se si, come?

Grazie

+0

avviare un'istanza di GIMP utilizzando il modulo 'subprocess' prima lo script inizia a fare il suo lavoro? –

+0

possibile duplicato di [Connetti GIMP con PHP o Python] (http: // stackoverflow.it/questions/3237252/connect-gimp-with-php-or-python) – unutbu

+1

Penso, non è un duplicato dato che chiedo esplicitamente come eseguirlo senza l'uso di plugin. Devo provare la chiamata di sottoprocesso ma penso che fallirà. – AsTeR

risposta

11

estensioni Python di GIMP devono essere eseguiti all'interno di un'istanza di GIMP. Se vuoi usare l'API GIMPś da Python devi eseguire un GIMP senza un'interfaccia grafica (passando il parametro -i dalla riga di comando) ed eseguire una chiamata personalizzata all'api - con il parametro della riga di comando -b - così, puoi eseguire il programma python_fu_do_it, dalla riga di comando di chiamata:

gimp -i -b \(python-fu-do-it \) 

si noti che questo è l'unico modo per ottenere le estensioni gimp-python esecuzione: devi correre da all'interno di un processo di GIMP.

Nella vita reale, una cosa utile da fare potrebbe essere quella di far sì che il tuo gimp-plugin esponga alcune funzioni che eseguono azioni sulle immagini che desideri e le esporti attraverso un server xmlrpc o jsonrpc - che è fatto facilmente in Python. Quindi si avvia questo "server immagine" utilizzando il metodo sopra riportato e si crea uno script python autonomo che chiama le funzioni gimp-using tramite xmlrpc.

+1

Ha pensato anche a questo approccio. Puoi confermare che questo è sicuro al 100% che non c'è modo di usare GIMP in Python invece di usare Python all'interno di GIMP? – AsTeR

+1

Come uno dei contributori a quel codice, lo confermo a te. – jsbueno

+0

@jsbueno esiste un modo prevedibile per rendere questo possibile un giorno? – magnetar

-3

devo dire che seguente affermazione non è vera: "estensioni Python di GIMP devono essere eseguiti all'interno di un'istanza di GIMP"

Non è necessario eseguire gimp per poter utilizzare le sue funzioni esposte tramite API gimpfu python.

In qualsiasi programma Python, per Linux è solo che segue:

import sys 
sys.path.append('/usr/lib/gimp/2.0/python/') 
import gimpfu 

dove '/usr/lib/gimp/2.0/python/' è percorso a GIMP installazione.

Saluti, Karlo.

+0

Hai provato un "flusso di lavoro di base": caricamento immagine + manipolazione + salvataggio? @jsbueno dice qualcos'altro ed è un contributore – AsTeR

+3

Dopo aver provato il flusso di lavoro di base con la chiamata alle funzioni pdb ho ottenuto lo stesso errore. L'aggiunta di gimp al percorso Python non è la soluzione per l'esecuzione di funzioni pdb senza gimp. Errore mio. –

+2

Puoi importare i moduli, ma senza un GIMP in esecuzione, non funziona - invece, Python termina con "LibGimpBase-ERROR **: gimp_wire_write_msg: il protocollo del filo non è stato inizializzato " – jsbueno

0

Un'opzione potrebbe essere quella di creare un processo listener all'interno di gimp come script (ciò potrebbe avere implicazioni per quanto riguarda il blocco dell'interfaccia utente, qui saranno necessari degli esperimenti), quindi farlo ascoltare una coda di lavoro beanstalkd. quindi nei processi esterni, depositare le richieste di lavoro sulla coda beanstalk e il beanstalk possono quindi elaborare questi ordini out-of-process.

Con tutto ciò che ha detto, il 99% dei casi d'uso potevo immaginare che vogliono fare questo, forse ImageMagick sarebbe una scelta più appropriata di GIMP come il suo tipo di progettato per il tipo di attività immagino che ti interessa

+0

GIMP può essere avviato dalla riga di comando senza UI. Funziona bene e puoi inserire il tuo script per ascoltare i lavori. – AsTeR

Problemi correlati