Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Archive de la liste aide - [Aide] Y a-t-il quelqu'un qui s'y connaît en scheme ou en script-fu ?
Bonsoir Kinyel,

Le 12/01/2016 20:43, Kinyel a écrit :

> or dans ton script le début est similaire et attend 3 arguments
> (define (script-fu-niveau pattern width height)
> mais tu le lances avec un seul le pattern
> gimp-2.8 -i --verbose -b "(script-fu-niveau
> \"/documents/scm/test/*.png\" )" -b "(gimp-quit 0)"
>
> essaie de commencer le script sans width ni height
> soit
> (define (script-fu-niveau pattern )
> et dis-nous

Oui, j'avais aussi pensé à cela.
Mais si je supprime  width et height, j'ai pour réponse :

batch command experienced an execution error:
Error: ( : 1) set!: unbound variable: width

Ce qui me semble normal, puisque je fais ensuite appel à ces variables, 
puisque je veux que le nouveau calque ait les mêmes dimensions que l'image.

Je viens donc d'essayer en supprimant tout appel à ces variables :

(define (script-fu-niveau pattern)
     (let* ((filelist (cadr (file-glob pattern 1))))
         (while (not (null? filelist))
             (let* ((filename (car filelist))
		(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename )))
		(drawable (car (gimp-image-get-active-layer image))))
		(let* new-layer (car ((gimp-layer-new image RGBA-IMAGE "niveau" 100 
NORMAL))) ; création d'un nouveau calque avec, en paramètres, la largeur 
et la hauteur renvoyées, son mode image, son nom, son opacité et son 
mode de calque. Et définition de la variable "new-layer" dont on aura 
besoin tout de suite.
		(gimp-image-add-layer image new-layer -1) ; sert à ajouter ce calque à 
l'image. La valeur -1 permet d'insérer le calque au-dessus du calque actif.
		(gimp-levels-stretch new-layer) ; applique un niveau automatique
		(set! drawable (car (gimp-image-get-active-layer image)))
                 (gimp-file-save RUN-NONINTERACTIVE image drawable 
filename filename))
			
             (set! filelist (cdr filelist))
	    )
	 )
      )
  )

Mais ça ne lui vas pas, il lui faut les dimensions :
Error: ( : 1) Bad syntax of binding spec in let* : new-layer

> cordialement
> Kinyel
> PS je n'y connais rien du tout en fait ;-)

Je te remercie d'autant plus de t'être penché sur le problème :-)

-- 
Joël

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons