TOP
tetris Programmez un Tetris en Java
360 pages PDF pour apprendre à votre rythme.
Développez des jeux vidéo en Java.
www.jdevmaker.com
Gimp 2.4
Documentation
Tutoriels
Ressources
Divers

Dernière mise à jour le 07 avr 2008
consultée 6031 fois
Apprendre  ›  Écrire un script-fu  ›  Tutoriel partie 8

 

Scheme, Tutoriel : Initiation partie 8

Ce document est sous un contrat Creative Commons.

 

Pour rappel voici l'état actuel de notre script :

10 (define (script-fu-nouveau-calque-rapide image drawable) ;; declaration de la fonction
20 (set! width (car (gimp-image-width img))) ;; variable de largeur de l'image
30 (set! height (car (gimp-image-height img))) ;; variable de hauteur de l'image
40 (set! new-layer (car (gimp-layer-new img width height RGBA-IMAGE "Nom du calque" 100 NORMAL)))
50 (gimp-image-add-layer img new-layer -1)
90 ) ;; fin de la fonction
 
100 (script-fu-register "script-fu-nouveau-calque-rapide" ;; nom du script
110 "<Image>/Perso/Quick Layer" ;; position du script dans le menu
120 "Cree un calque directement, sans dialogue" ;; commentaires
130 "Auteur" ;; auteur
140 "Copyright" ;; copyright
150 "Date" ;; date
160 "" ;; types d'images supportés par le script
170 SF-IMAGE "Image" 0 ;; image dans lequel le calque est ajouté
180 SF-DRAWABLE "Drawable" 0 ;; calque actif de l'image
190 ) ;; fin du register

 

Ajouter le calque

La ligne 40 va nous permettre de créer ce nouveau calque. Examinons, dans la base de procédure la commande :

gimp-layer-new.

C'est une commande un peu plus complexe, mais c'est vraiment très simple. En entrée, nous devons simplement indiquer ce qui caractérise un calque, à savoir sa largeur, sa hauteur, son mode image, son nom, son opacité et son mode de calque. Notez qu'en premier nous devons lui indiquer l'image dans laquelle ce calque devra être insérer.

soit,

(gimp-layer-new img width height RGBA-IMAGE "Nom du calque" 100 NORMAL)

ou

(gimp-layer-new img width height 1 "Nom du calque" 100 0)

La première forme est sans doute plus évocatrice !

Comme la Sortie indique LAYER soit le calque, cette commande nous retournera donc cette valeur. Nous en profiterons, car nous aurons par la suite besoin de ce calque, nous devons l'identifier, c'est à dire créer une variable contenant toutes les informations de ce calque. Cela ce passe exactement comme nous l'avons déjà vu.

Nous utilisons set!. Notre variable s'appellera new-layer.

(set! new-layer (gimp-layer-new img width height RGBA-IMAGE "Nom du calque" 100 NORMAL))

Mais encore une fois, cette forme est inexact. J'insiste : nous n'attribuons pas directement une valeur à notre variable new-layer, mais c'est une commande qui retournera une valeur. Nous devons donc impérativement utiliser car.

soit,

(set! new-layer (car (gimp-layer-new img width height RGBA-IMAGE "Nom du calque" 100 NORMAL)))

La variable new-layer contient donc "le calque" créé.

 

A ce stade notre calque est créé, mais il n'apparaît pas encore dans le dialogue Calque. Pourquoi ? Eh bien c'est comme ça ! On pourrait en effet souhaiter que cela soit automatique, mais ça ne l'est pas. Nous devrons donc utiliser une seconde commande qui le fera, et qui va de paire avec la précédente en quelque sorte.

soit,

gimp-image-add-layer

Nous devons spécifier 3 entrées :

A la ligne 50, nous écrirons donc la commande ainsi :

(gimp-image-add-layer img new-layer -1)

Enfin la ligne 90 ferme la première parenthèse ouverte en ligne 10, et termine l'écriture de notre fonction.

 

 

Valide XHTML 1.0 Strict
Valide CSS 2.0
Valide Accessibilité
Creative Commons License

Tous les documents et ressources sont sous un contrat Creative Commons.