Aide pour créer un script-fu pour GIMP

Résolu/Fermé
CCrdz Messages postés 99 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 12 février 2013 - 6 oct. 2012 à 12:46
 Utilisateur anonyme - 7 oct. 2012 à 13:50
Bonjour,
Alors voilà, cela fait un moment que je doit donner un aspect spécifique à un texte en lui faisant subir plusieurs transformation. Seulement, c'est long et j'ai donc essayé de me faire un script pour automatiser tout ça.
Héla je bloque déjà car malgré tous mes efforts il m'est impossible de dupliquer un calque et je pense connaître par la suite de nombreux autres problemes.

J'aimerais donc savoir si il y aurais une personne s'y connaissant un peut là dedans et qui pourrais donc m'aider.

Merci d'avance


A voir également:

1 réponse

Salut,

Vi... pas de fonction pour dupliquer un calque en script-fu.

une solution possible :
> copier le calque,
> ajouter la copie à l'image.

Ce qui donne en script :
(define CopieCalque (car (gimp-layer-copy drawable TRUE))) ; copie du calque   
(gimp-image-add-layer image CopieCalque 0) ; ajout de la copie

;-)

Bien entendu, la variable drawable devra avoir été déclarée et définie dans les variables globales (let* en début de script).

Un exemple de script complet :
(define (script-fu-test-fonction image)   

(let* (   
      (drawable (car (gimp-image-get-active-drawable image)))   
)   

(gimp-image-undo-group-start image)    

(define CopieCalque (car (gimp-layer-copy drawable TRUE)))    
(gimp-image-add-layer image CopieCalque 0)    

(gimp-image-undo-group-end image)    

)    
(gimp-displays-flush)   
)    

(script-fu-register "script-fu-test-fonction"   
      "<Image>/TEST/Test fonction..."   
      "Script servant a tester..."   
      "Le Gnou"   
      "Les Gimperies du Gnou"   
      "2012"   
      "*"   
                    SF-IMAGE "Image" 0   
)



En passant, une fonction bien utile :
(gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 0))   
(set! drawable (car (gimp-image-get-active-layer image)))


> (gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 0))
pour définir le calque actif. Pour changer de calque dans la pile, il suffit de changer le chiffre en fin de ligne :
0 = 1er calque en haut de pile,
1 = 2ème calque en partant du haut de la pile, etc.

> (set! drawable (car (gimp-image-get-active-layer image)))
définit ce calque comme drawable actif (zone qui sera éditée... un drawable pouvant être un calque, un masque...).
;-)


je pense connaître par la suite de nombreux autres problemes.
Longue & semée d'embuches est la voie qui mène à la sagesse et à la maitrise du script-fu, petit scarabée...
:-D

Quelques liens pour essayer d'y voir un peu plus clair :
http://leblogdugnou.blogspot.fr/2012/04/to-script-or-not-to-script.html
https://zigazou.wordpress.com/2009/05/19/decortiquons-un-script-fu-pour-gimp/
https://docs.gimp.org/fr/gimp-using-script-fu-tutorial.html
http://abcdugimp.free.fr/gimp/apprendre/scheme/scheme.php
https://fr.wikibooks.org/wiki/Programmation_Scheme
http://www.gimpfr.org/script.php
;-)

@+
(_._)
-0|0-
1
CCrdz Messages postés 99 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 12 février 2013 23
7 oct. 2012 à 13:18
Un immense merci à toi, déjà pour avoir répondu à ma question, mais aussi pour l'autre ligne de code pour sélectionner un calque dont j'ai eu besoin juste après et pour tous les autres liens vraiment très utiles.
Encore merci à toi pour toute cette aide et très bonne continuation.
0
Re,

Ben, de rien...
;-)

Bonne continuation également... et bon courage : l'écriture de scripts ne se fait pas sans heurts, mais n'est pas non plus insurmontable (il faut juste faire preuve de patience & de persévérance...).
;-)


@+
0