Tecnologia e non solo

aprile 13, 2012

Gimp 2.8 scripting con script-fu 4

Filed under: image-processing — telperion @ 8:40 pm

Quarta parte,
aggiungere livelli,
selezionare livelli,
copia e incolla tra livelli.

Il codice lo trovate qui:
http://pastebin.com/4YRKyiFD

vediamo le aggiunte dalla riga 42 alla 83:

	; parte 4 ----------------------------------------------------

	; crea un nuovo livello nel gruppo livelli id miogruppo
	; col nome "Prova"
	(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
	)

	; seleziona del layer col nome "Originale"
	(gimp-image-set-active-layer img 
		(car (gimp-image-get-layer-by-name img "Originale"))
	)


	; copia il livello selezionato nel buffer ...
   	(gimp-edit-copy drawable)


	; e incollalo nel livello col nome "Prova"
	(gimp-floating-sel-anchor 
		(car (gimp-edit-paste
			(car (gimp-image-get-layer-by-name img 
			     "Prova"
			      )
			)
		      0
		      )
		)
	)


	; fine parte 4 -----------------------------------------------

La prima funzione crea il nuovo livello “Prova” nel gruppo id miogruppo.

Duplicando la funzione (dalla riga 46 alla 58 comprese) potete creare tutti i livelli che volete in qualsiasi parte dello script cambiando solo la stringa “Prova” (riga 51) col nome che volete.

La seconda funzione

	(gimp-image-set-active-layer img 
		(car (gimp-image-get-layer-by-name img "Originale"))
	)

rende attivo il livello col nome “Originale”.
Potete usare una copia di questa funzione ovunque, per rendere attivo un livello “Nome_livello” cambiando la stinga tra le virgolette.

  	(gimp-edit-copy drawable)

copia il livello attivo nel buffer (come ctrl+c)

Nota:
il metodo descritto seleziona il livello e copialo nel buffer, comporta alcuni problemi e lo ho sostituito con un unico passaggio gimp-edit-copy molto più sicuro come spiegato nella 7 parte. Ai fini di queste spiegazioni non cambia nulla potete ignorare la cosa fino alla settima parte, ma se fate degli script vostri per sperimentare, usate il nuovo codice per copiare direttamente un livello nel buffer.

Poi

	(gimp-floating-sel-anchor 
		(car (gimp-edit-paste
			(car (gimp-image-get-layer-by-name img 
			     "Prova"
			      )
			)
		      0
		      )
		)
	)

lo incolla nel livello col nome “Prova”.
Anche in questo caso la funzione può essere duplicata per copiare in qualsiasi livello creato, semplicemente cambiando la stringa del nome tra le virgolette.

Salvato lo script e se gimp è aperto facciamo:
menu – filtri – script-fu – aggiorna gli script

eseguiamo poi lo script su un’immagine aperta:


Uploaded with ImageShack.us

Dal menu Modifica – Annulla demo livelli di gruppo
potremo annullare le azioni dello script visto che abbiamo impostato l’undo generale nella parte 2.

Tutto chiaro?
Alla prossima.

Gimp 2.8 scripting con script-fu 3

Gimp 2.8 scripting con script-fu 5

Crea un sito o un blog gratuitamente presso WordPress.com.

%d blogger cliccano Mi Piace per questo: