Aiuto per correggere glass.scm

Domandate qui se non riuscite ad installare i filtri o gli script, oppure se avete problemi legati alla creazione e modifica dei filtri. Qui si pongono le domande più tecniche.
Rispondi
OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59
Aiuto per correggere glass.scm

Messaggio da OrsoBubu » mer 14 mag 2008, 20:47

Salve a tutti.

seguendo le vostre indicazioni sono andato qui e ho capito cosa devo fare per correggere lo script in questione, solo che non so come farlo!!!!! :?

Il problema è la variabile theImage che non è stata dichiarata e che dovrei dichiarare usando let o let* ecc.. ecc.. ma conosco a malapena un'altro linguaggio per windows che, per giunta non ha niente a che fare con gli scripts di gimp.

Ho bisogno di un aiuto, come devo dichiarare la variabile?

Qualcuno può dirmelo, se lo sa?

Lo script è questo e la riga incriminata è in rosso:

(define (glass-sketch)
(let*
((a (cons-array 18 'byte)))
(set-pt a 0 0 0)
(set-pt a 1 127 32)
(set-pt a 2 255 64)
a))
(define (glass inimage indraw thickness displace delete)
(set! theImage inimage)
(set! theDraw indraw)
(gimp-image-undo-group-start theImage)
(gimp-context-set-foreground '( 255 255 255))

Grazie
OrsoBubu

PhotoComix
Mastro Gimper
Mastro Gimper
Messaggi:1001
Iscritto il:sab 4 mar 2006, 1:20
Contatta:

Messaggio da PhotoComix » gio 15 mag 2008, 12:38

########################################

(define (set-pt a index x y)
(begin
(aset a (* index 2) x)
(aset a (+ (* index 2) 1) y)))
(define (glass-sketch)
(let* ((a (cons-array 18 'byte)) (set-pt a 0 0 0) (set-pt a 1 127 32)
(set-pt a 2 255 64)
a))(define (glass inimage indraw thickness displace delete)
(let* ( (theImage) (theDraw) (height) (width) (layer2)
(layer3) (layer4))

(set! theImage inimage) (set! theDraw indraw)
(gimp-image-undo-group-start theImage)
(gimp-context-set-foreground '( 255 255 255))
(set! height (car (gimp-drawable-height theDraw)))
(set! width (car (gimp-drawable-width theDraw)))
(set! layer2 (car (gimp-layer-copy theDraw 1)))
(gimp-image-add-layer theImage layer2 -1)
(set! layer3 (car (gimp-layer-new theImage width height 1 "layer3" 100 0)))
(gimp-drawable-fill layer3 3)
(gimp-image-add-layer theImage layer3 -1)
(gimp-selection-layer-alpha layer2 )
(gimp-edit-bucket-fill layer2 0 0 100 0 0 0 0)
(gimp-context-set-foreground '( 132 106 79))
(gimp-edit-bucket-fill layer3 0 0 100 0 0 0 0)
(gimp-selection-none theImage)
(plug-in-gauss 1 theImage layer2 5 5 1)
(plug-in-bump-map 1 theImage layer3 layer2 135 45 (+ thickness 2) 0 0 0 0 0 0 0)
(gimp-selection-layer-alpha layer3 )
(gimp-selection-shrink theImage thickness)
(gimp-selection-feather theImage (- thickness 1))
(gimp-curves-spline layer3 4 6 (glass-sketch))
(set! layer4 (car (gimp-layer-copy layer3 1)))
(gimp-image-add-layer theImage layer4 -1)
(gimp-edit-clear layer3)
(gimp-selection-none theImage)
(gimp-invert layer4)
(plug-in-gauss 1 theImage layer3 (+ 2 displace) (+ 2 displace) 1)
(gimp-drawable-offset layer3 1 0 displace displace)
(gimp-hue-saturation layer4 0 0 0 -100)
(gimp-image-remove-layer theImage layer2)
(gimp-drawable-set-visible theDraw 0)
(if (= delete TRUE) (gimp-image-remove-layer theImage theDraw))
(gimp-layer-set-mode layer3 BURN-MODE)
(gimp-layer-set-opacity layer3 86)
(gimp-image-undo-group-end theImage)
(gimp-displays-flush) ))
(script-fu-register "glass" "<Image>/Script-Fu/Gimp-talk.com/glass..."
"Turns a layer into glass"
"Karl Ward"
"Karl Ward"
"Feb 2006"
"RGBA"
SF-IMAGE "SF-IMAGE" 0
SF-DRAWABLE "SF-DRAWABLE" 0
SF-ADJUSTMENT "Glass Thickness" '(3 1 10 1 2 0 1)
SF-ADJUSTMENT "Shadow Displacment" '(12 5 24 1 2 0 1)
SF-TOGGLE "delete original layer" TRUE )

##################################
non perderti l'ultima parentesi o non funziona

PhotoComix
Mastro Gimper
Mastro Gimper
Messaggi:1001
Iscritto il:sab 4 mar 2006, 1:20
Contatta:

Messaggio da PhotoComix » gio 15 mag 2008, 12:48

PS
quello che hai postato non era lo script ma solo un pezzetto,in quel modo non avrebbe mai funzinato su nessuna versione di gimp.

questo dovrebbe funzionare su gimp 2.4, se la riformattazione non l'ha incasinato

OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59

Messaggio da OrsoBubu » gio 15 mag 2008, 12:52

fotocomics ha scritto:PS
quello che hai postato non era lo script ma solo un pezzetto,in quel modo non avrebbe mai funzinato su nessuna versione di gimp.

questo dovrebbe funzionare su gimp 2.4, se la riformattazione non l'ha incasinato
Si, certo che era un pezzetto, secondo quanto avevo capito io era il pezzo che dava origine all'errore.

In serata lo provo e ti dico........

Intanto grazie. :D
OrsoBubu

PhotoComix
Mastro Gimper
Mastro Gimper
Messaggi:1001
Iscritto il:sab 4 mar 2006, 1:20
Contatta:

Messaggio da PhotoComix » gio 15 mag 2008, 12:57

define all'inizio ha una corrispondenza con la parte finale,se devi definire "theImage Inimage" non cambia solo quella riga ,

Oltre quella cambia l'inizio, il blocco dove definisci,
e la fine che è collegata alle definizioni iniziali

OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59

Messaggio da OrsoBubu » gio 15 mag 2008, 13:35

fotocomics ha scritto:define all'inizio ha una corrispondenza con la parte finale,se devi definire "theImage Inimage" non cambia solo quella riga ,

Oltre quella cambia l'inizio, il blocco dove definisci,
e la fine che è collegata alle definizioni iniziali
Grazie per le delucidazioni, adesso posso studiarmi le differenze e capirle un pò di più.
OrsoBubu

OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59

Messaggio da OrsoBubu » gio 15 mag 2008, 14:58

dunque l'ho provato ma non va.... :(

Non appare il menu script-fu, allora sono andato in console script-fu e da questo errore:

Errore durante l'esecuzione
(load "C:\\Documents and Settings\\aforconi\\Desktop\\WinPenPack Personal\\winpenpack\\Bin\\GIMPPortable\\App\\gimp\\share\\gimp\\2.0\\scripts\\glass.scm")

Error: unmatched parentheses: 2

solo che non so bene quali siano le parentesi mancanti, se ho capito bene quel 2 sta ad indicare la seconda riga, sbaglio?

Infatti la seconda riga ha una parentesi mancante che però si chiude nell'ultima riga, quella che mi hai avvertito di non tralsaciare e infatti non l'ho fatto....
OrsoBubu

OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59

Messaggio da OrsoBubu » ven 16 mag 2008, 11:54

Sono riuscito a capire qual'era la parentesi mancante, credo.....

Adesso però ottengo l'errore "Illegal token: 2" e questo mi è davvero oscuro... giuro.... :(
OrsoBubu

PhotoComix
Mastro Gimper
Mastro Gimper
Messaggi:1001
Iscritto il:sab 4 mar 2006, 1:20
Contatta:

Messaggio da PhotoComix » ven 16 mag 2008, 18:53

uhmm

puo darsi che abbia fatto io un errore e 'labbia involontariamente riformattato

prova a copiarlo da qui http://gimpscripts.com/?p=11
è un'altra versione ma sempre per Gimp 2.4.

A proposito SOLO per gimp 2.4.0 e successivi su versioni precedenti NON funziona

OrsoBubu
Apprendista
Apprendista
Messaggi:17
Iscritto il:mer 26 set 2007, 6:59

Messaggio da OrsoBubu » ven 16 mag 2008, 19:23

Grazie fotocomics per il lavoro che fai per aiutarmi.

Quello che mi hai indicato è una copia di uno che trovi qui:

http://sourceforge.net/projects/gimpfx-foundry

che si chiama anche in mdo simile.

Per la verità funziona più che bene, l'unico problema è che non riesco a creare una scritta che abbia le dimensioni giuste, io vorrei importarla come un livello in un'iimagine già creata di larghezza 200, le dimensioni del font non corrispondono e divento matto a forza di tentare....
OrsoBubu

PhotoComix
Mastro Gimper
Mastro Gimper
Messaggi:1001
Iscritto il:sab 4 mar 2006, 1:20
Contatta:

Messaggio da PhotoComix » mar 20 mag 2008, 1:12

si sono uguali è fx-fondry che cambia nome agli script

la lunghezza dipende dalla grandezza dei font, difficilire stabilirla a occhio,

comunque se mi ci avvicino diciamo entro il 30% dalle dimensioni volute,semplicemente ridimensiono l'immagine con la scritta, in quei limiti (be anche oltre..) non si avverte perdita di qualita riducendo o ingrandendo.

Anzi a volte lo faccio apposta per creare effetti scalando solo la larghezza o la lunghezza

Rispondi