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 5462 fois
Apprendre  ›  Écrire un script-fu  ›  Tutoriel partie 7

 

Scheme, Tutoriel : Initiation partie 7

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)))
30 (set! height (car (gimp-image-height img)))
 
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

 

Définir la largeur

Nous voulons créer un nouveau calque sur une image qui ne nous est pas connu, ayant ses propres dimensions. Notre nouveau calque doit posséder la même taille que l'image, du moins c'est préférable. Mais comment faire pour connaître des dimensions que seul l'utilisateur connaîtra ?

Pas de panique, Gimp nous offre une procédure nous indiquant cela. Dans la base de procédure, cherchez gimp-image-width.

Cette procédure nous permettra d'obtenir la largeur de l'image active.

Entrée signifie que Gimp doit connaître certaine chose pour exécuter cette commande.

Sortie signifie que Gimp vous retournera une valeur après que la commande est été exécuter avec succès.

Voici un récapitulatif de ce que la base de procédure indique.

 

 

Quoi

Type

Descriptions, notes

Entrée :

image

IMAGE

l'image

Sortie :

largeur

INT32

la largeur de l'image

 

Gimp doit connaître (entrée) l'image dont vous désirez obtenir la largeur ; en contre-partie il vous indiquera la valeur (sortie) de cette largeur (on parle de valeur retournée, rendue, renvoyée). IMAGE signifie donc que vous devez indiquer une image. INT32 vous indique que la valeur retourné sera de type numérique (plus précisément un entier).

img est la variable que nous employons dans notre script pour identifier l'image active.Nous utiliserons donc cette procédure en l'écrivant,

(gimp-image-width img)

Comme nous aurons besoin de la valeur retournée par cette procédure, nous allons devoir la stocker dans une variable, c'est maintenant ce que nous allons voir.

 

Définir la variable de la largeur

Pour définir une variable nous utilisons l'instruction set!.

La forme sous laquelle est est utilisé est :

(set! [variable] [valeur])

Admettons que nous voulons définir la variable bonbon, et lui attribuer la valeur 5. Cela s'écrira,

(set! bonbon 5)

Cela équivaut à dire bonbon est égal à 5.

Pour notre exemple nous utiliserons le nom width pour notre variable contenant la valeur de largeur de l'image. La valeur à attribuer à width est dépendante de la procédure que nous avons vu précédement : (gimp-image-width img).

Nous avons déjà vu la caractéristique d'emboîtement des parenthèses du Scheme, ainsi, cela s'écrit,

(set! width (gimp-image-width img))

Cette forme est cependant inexact : comme (gimp-image-width img) est une procédure qui va nous retourner une liste, et non pas directement une valeur, nous devons impérativement insérer la commande car entre notre variable et la procédure avec aussi un emboîtement de parenthèses. Cela s'écrit,

(set! width (car (gimp-image-width img)))

Cela stockera la largeur de notre image img dans la variable width.

Pour info : pour parfaitement "comprendre" pourquoi on doit utiliser car, il vous faudra comprendre les listes, et la notion de tête et de queue (de liste). Cela viendra en partie 12.

Pour la hauteur, nous utiliserons exactement le même principe mais avec la procédure,

gimp-image-height

Les lignes 20 et 30, nous permettent donc d'obtenir la largeur et la hauteur de l'image active, et de stocker ces valeurs dans 2 variables, respectivement width et height.

 

 

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.