Tecnologia e non solo

aprile 16, 2012

Gimp 2.8 scripting con script-fu 11

Filed under: image-processing — telperion @ 7:25 pm

Undicesima parte.
Funzioni definite dall’utente,
per semplificare gli script.

Nella 9 parte abbiamo visto (qui il codice del precedente script) che basta riutilizzare con copia incolla il codice con minimi cambi, per compiere molte operazioni

Certo che cose come:

	(gimp-image-insert-layer img 
		(car (gimp-layer-new img 
			(car (gimp-drawable-width drawable)) 
			(car (gimp-drawable-height drawable)) 
			(car (gimp-drawable-type drawable)) 
		     "Prova"  
		     100
		     NORMAL-MODE
		     )
		) 
		miogruppo
 		0
	)

cioè la procedura per creare ed inserire un nuovo livello,
non sono proprio il massimo della comprensione e della semplicità.

Possiamo aiutarci definendo delle funzioni personali al fondo dello script (dopo la Funzione di registrazione) per le operazioni più ripetitive.

Ad esempio possiamo definire una nostra funzione con il codice sopra, che diventa:

; --------------------------------------------------------------------
; funzioni personali
; --------------------------------------------------------------------

; (crea-nuovo-livello img drawable nomelivello opacita modalita gruppo)
;
; la funzione crea un nuovo livello

(define (crea-nuovo-livello img drawable nomelivello opacita modalita gruppo)
  (let* 
         (	
	 ; dichiarare tutte qui le variabili usate
	 )

  ; qui ci saranno tutte le operazioni da compiere 

	(gimp-image-insert-layer 
		img 
		(car (gimp-layer-new img 
			(car (gimp-drawable-width drawable)) 
			(car (gimp-drawable-height drawable)) 
			(car (gimp-drawable-type drawable)) 
		     nomelivello  
		     opacita
		     modalita
		     )
		) 
		gruppo
 		0
	)

  ; fine operazioni
  )
)

; --------------------------------------------------------------------

Abbiamo così creato una nostra funzione:

(crea-nuovo-livello img drawable nomelivello opacita modalita gruppo)

che ora possiamo usare tutte le volte che ci serve con un più semplice:

	(crea-nuovo-livello img drawable "Prova" 100 NORMAL-MODE miogruppo)

molto più chiaro.

Nel nuovo script della 11 parte:
pastebin.com/raw.php?i=HqRmqLxk

che potete salvare come

~/.gimp-2.8/scripts/personali-demolivelligruppo-funzioni.scm

e che troverete in filtri – personali – demo livelli gruppo con funzioni,
ho semplificato di molto il codice aggiungendo 5 funzioni personali:

(crea-nuovo-livello img drawable nomelivello opacita modalita gruppo)

(copia-livello img nomelivello)

(incolla-livello img nomelivello)

(livello-col-nome img nomelivello)
; la funzione ritorna l’id del livello col nome nomelivello

(scala-proporzione img dimensionemax)
; la funzione scala l’immagine proporzionalmente
; al valore dimensionemax (numero di pixel) per il lato più lungo

e usandole nello script al posto delle procedure complete, il codice risulta così molto più semplice.

Il tutto è completamente commentato per una facile comprensione.

Come vedete le funzioni definite dall’utente sono molto potenti e possono essere riutilizzate in ogni nostro script incollandole al fondo, per semplificarci molto la vita.

Potete usare questo script come base per i vostri script.

Alla prossima.

Gimp 2.8 scripting con script-fu 10

Gimp 2.8 scripting con script-fu 12

L’indice completo delle parti di “Gimp-2-8 scripting con script-fu”
lo trovate in
Articoli in evidenza

Annunci

1 commento

  1. ma allora a te garba proprio la fotografia.
    Non capisco perchè ti ostini ad usare sto’ programma, che ti fa fare i salti mortali !!!!

    Commento di seawolf70 — aprile 16, 2012 @ 9:42 pm


RSS feed for comments on this post.

%d blogger hanno fatto clic su Mi Piace per questo: