Pagina 1 di 1

Aiuto per correggere glass.scm

Inviato: mer 14 mag 2008, 20:47
da OrsoBubu
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

Inviato: gio 15 mag 2008, 12:38
da PhotoComix
########################################

(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

Inviato: gio 15 mag 2008, 12:48
da PhotoComix
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

Inviato: gio 15 mag 2008, 12:52
da OrsoBubu
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

Inviato: gio 15 mag 2008, 12:57
da PhotoComix
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

Inviato: gio 15 mag 2008, 13:35
da OrsoBubu
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ù.

Inviato: gio 15 mag 2008, 14:58
da OrsoBubu
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....

Inviato: ven 16 mag 2008, 11:54
da OrsoBubu
Sono riuscito a capire qual'era la parentesi mancante, credo.....

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

Inviato: ven 16 mag 2008, 18:53
da PhotoComix
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

Inviato: ven 16 mag 2008, 19:23
da OrsoBubu
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....

Inviato: mar 20 mag 2008, 1:12
da PhotoComix
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