Après vous avoir dit comment intégrer un script je vais me penché sur la réalisation de scripts fu.
Cela reste de la théorie, car je n'est fait pour le moment que des modifs de scripts;
Voila. Comment je vais proceder; je vais me servir d'un script existant. Celui de Epsilon.
qui permet de faire rapidement des cadres et des liserets de toutes beauté.
Voila le code
- Spoiler:
- Code:
-
;; Script-fu Encadrement
;;Version 2.1
(define (script-fu-bordure-encadrement image drawable toggle-cadre-interieur couleur-cadre-interieur taille-cadre-interieur toggle-cadre-exterieur couleur-cadre-exterieur taille-cadre-exterieur toggle-liseret couleur-liseret taille-liseret couleur-fond toogle-ombre couleur-ombre decalage-ombre rayon-flou opacite)
;; debut d'historique d'annulation
(gimp-image-undo-group-start image)
;;Définit les couleurs par défaut, arrière-plan: noir, premier-plan: blanc
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
;;Création de l'ombre
(let* (
;; Dimensions de l'image
(img-width (car (gimp-image-width image)))
(img-height (car (gimp-image-height image)))
;;Modifie la couleur du premier plan
(gimp-context-set-foreground couleur-ombre)
)
(if (eq? toogle-ombre FALSE)
()
;;Création de l'ombre
(script-fu-drop-shadow image drawable decalage-ombre decalage-ombre rayon-flou couleur-ombre opacite 100)
)
(gimp-image-resize-to-layers image)
)
;;Création du fond blanc
(let* (
;;Dimensions de la nouvelle image
(new-img-width (car (gimp-image-width image)))
(new-img-height (car (gimp-image-height image)))
;; Paramétre du nouveau calque
(layer-fond (car (gimp-layer-new image new-img-width new-img-height RGB-IMAGE "Fond" 100 NORMAL)))
)
;;Crée un nouveau masque et le descend en dernière position
(gimp-image-add-layer image layer-fond +2)
;;Modifie la couleur du fond
(gimp-context-set-background couleur-fond)
;;Remplit le masque
(gimp-edit-fill layer-fond 1)
;;Raffraichit l'écran
(gimp-displays-flush)
)
;;Création du cadre et du liseret
(let* (
;;Dimensions de l'image ombrée
(width (car (gimp-image-width image)))
(height (car (gimp-image-height image)))
)
;;Crée le cadre et les liserets
(if (eq? toggle-cadre-interieur FALSE)
()
(script-fu-addborder image drawable taille-cadre-interieur taille-cadre-interieur couleur-cadre-interieur 0)
)
(if (eq? toggle-liseret FALSE)
()
(script-fu-addborder image drawable taille-liseret taille-liseret couleur-liseret 0)
)
(if (eq? toggle-cadre-exterieur FALSE)
()
(script-fu-addborder image drawable taille-cadre-exterieur taille-cadre-exterieur couleur-cadre-exterieur 0)
)
)
;;Re-initialise les outils
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
;; fin d'historique d'annulation
(gimp-image-undo-group-end image)
;; fin de la fonction
)
(script-fu-register "script-fu-bordure-encadrement"
"<Image>/Script-Fu/Encadrement"
Maintenant décortiquons le ensemble.
Vous devrais voir que ce script et en plusieurs partie.
Chaque partie se lie les unes au autes; Pour ne faire qu'une seule chose;
En premier vous avais donc le cadre. la section du code est celle ci.
- Code:
-
(define (script-fu-bordure-encadrement image drawable toggle-cadre-interieur couleur-cadre-interieur taille-cadre-interieur toggle-cadre-exterieur couleur-cadre-exterieur taille-cadre-exterieur toggle-liseret couleur-liseret taille-liseret couleur-fond toogle-ombre couleur-ombre decalage-ombre rayon-flou opacite)
;; debut d'historique d'annulation
(gimp-image-undo-group-start image)
cela est donc le code qui permet de faire le cadre souhaiter.
regardons donc ce code.
d'une simplicité extrême ce code n'est qu'un assemblage de mots. nous commençons donc par la bordure, et nous finissons sur le fond. Cela reste relativement simple me dirais vous et bien oui cela reste simple. Car je vais vous donner le truc pour en faire et des mieux encore. Imaginer comment vous dessiner un cadre; Vous faite les contour, puis ce qu'il y a a l’intérieur. Et bien pareil. Vous faite la même chose. Vous créer les bordure puis le reste.
Le reste est en cours d'expliquation.