GIMP Script-fu - Ajouter un masque sur une image


Cette page montre, à l'aide d'un script pour GIMP (Script-Fu), comment placer automatiquement un masque sur image ouverte dans GIMP, sans modifier les dimensions de cette image Ce masque est une image transparente quelconque enregistrée dans un fichier .png. Elle est choisie au début de l'exécution du script par l'intermédiaire de la boîte de dialogue associée à ce script. Cette méthode peut être utilisée en particulier pour placer une signature ou un copyright personnalisé sur une image.

Ecrire et enregistrer le script

Ecrire le script suivant avec le Bloc-Notes puis le sauvegarder avec le nom «masque.scm» (l’utilisation de ce nom est ici obligatoire car il doit correspondre à celui indiqué dans le script afin que GIMP puisse l’enregistrer correctement). Placer ce fichier dans le répertoire «C:/ Program Files/ GIMP/ lib/ gimp/ 2.0/ share/ gimp/ 2.0/ scripts».

Au début du script, à l'intérieur de la fonction «define», on distingue les variables suivantes :

  • «inImage» passé à la fonction define est associée à la ligne «SF-IMAGE "inImage" 0» située en fin de script. Elle correspond à l’image en cours visible dans la fenêtre principale de GIMP ;
  • «inMasque» est associé à la ligne «SF-FILENAME "inMasque" (string-append "" gimp-data-dir "/scripts/images/masque.png") située en fin de script. Elle correspond au fichier .png dans lequel se trouve enregistrée l'image du masque.

Remarque : Le paramètre (string-append "" gimp-data-dir "/scripts/images/masque.png") permet d'obtenir prérenseignés l'emplacement et le nom du fichier masque lors de l'ouverture de la boîte de dialogue du script. Pour que cette facilité fonctionne, il faut dans notre exemple placer le fichier .png dans le répertoire «C:/ Program Files/ GIMP/ lib/ gimp/ 2.0/ share/ gimp/ 2.0/ scripts/ images» avec le nom «masque.png». A défaut la recherche du fichier souhaité, à l'aide de la boîte de dialogue, reste possible.

La procédure «gimp-file-load-layer» charge le fichier image .png, choisi par l'intermédiaire de la boîte de dialogue du script, en tant que calque associé à l'image en cours ouverte dans la fenêtre de GIMP. La valeur du calque retournée par cette procédure est rangée dans la variable «moncalque». Il est à noter que ce calque associé à l'image doit être ensuite explicitement ajouté à cette image à l'aide de la procédure «gimp-image-add-layer»

La procédure «gimp-image-flatten» applatit l'image.

;================
; Ce script place un masque sur une image ouverte dans GIMP
; sans modifier les dimensions de cette image
; ce masque est une image transparante enregistrée dans un
; fichier .png. Elle est choisie au début de l'exécution du script
; par l'intermédiaire de la boîte de dialogue associée à ce script.
;; Auteur : Claude Turrier - juin 2016
;---------------
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;=================
(define (script-fu-masque inImage inMasque )
(let*
(
(moncalque (car (gimp-file-load-layer 1 inImage inMasque)))
)
(gimp-image-add-layer inImage moncalque 0)
(gimp-image-flatten inImage)
) ; fin de let*
) ; fin de define
;----Faire enregistrer le script par Gimp---
(script-fu-register "script-fu-masque"
"<Image>/MesScripts/masque"
"---------------"
"Ajouter un masque au dessus d'une image"
"Claude Turrier"
"2016"
"-------------"
SF-IMAGE "inImage" 0
SF-FILENAME "inMasque" (string-append "" gimp-data-dir "/scripts/images/masque.png")
)

Préparer l'image «masque.png»

Créer, à l'aide de GIMP une image png transparente, par exemple une image contenant une signature placée dans le coin inférieur droit . Attribuer à cette image la même taille que les images sur lesquelles elle est destinée à être placée (1200 x 800 par exemple).

1

Enregistrer cette image, en fomrat png afin de conserver la transparence, avec le nom «masque.png» et la placer par exemple dans le répertoire «C:/ Program Files/ GIMP/ lib/ gimp/ 2.0/ share/ gimp/ 2.0/ scripts/ images» («Fichier/Export As...»).

2

Utiliser le script

Cliquer «Fichier/Ouvrir» pour ouvrir une image dans GIMP.

3

Cliquer «MesScripts/masque» pour appliquer le script à l'image ouverte.

4

Dans la boîte de dialogue du script qui s'ouvre, choisir le fichier «masque.png» puis cliquer le bouton «Valider».

5

Constater que le masque copié sur l’image n'est pas visible dans la fenêtre de Gimp. Cela provient du fait que l’affichage de l’image en cours n’a pas été actualisé dans la fenêtre. Pour voir le masque copié dans la fenêtre de GIMP, il suffit de cliquer deux fois sur l’œil situé à gauche de l’image dans la boîte des calques (rappel : pour faire apparaître la boîte des calques avec Gimp 2.8, il faut cliquer l’option de menu «Fenêtres/Fenêtres ancrables/Calques »). Le résultat attendu est aussitôt obtenu. Il ne reste plus qu'à enregistrer l'image avec un nom différent de l'image d'origine afin de ne pas effacer cette dernière («Fichier/Export As...»).

6

L'application à l'image d'un script d'encadrement, comme le script cadreflou de rayon 10 et de taille 20 par exemple, assure la finition.

salamanque

Télécharger le code source du script : masque.scm.

Appliquer le script automatiquement à un lot d’images

Pour appliquer le script automatiquement à un lot d’images, il suffit d’utiliser, par exemple, le plugin «BIMP» créé par alessandro francesconi.
L’installation et l’utilisation de ce plugin sont décrits dans la page GIMP - Traitement par lot

Copier le fichier «masque.png» dans un répertoire facilement accessible, directement sur «C:» par exemple. Supposons que le lot d'images se trouve, par exemple, dans le dossier «D:\source» et que l'on souhaite ranger les copies d'images traitées par le script dans le répertoire «D:\destination» qui est vide.

6

Cliquer «Fichier/Batch Image Manipulation...»

7

Dans la boîte de dialogue Script-Fu qui s'ouvre, cliquer les trois boutons :

  • «Ajouter des images» (choisir l’option «Ajouter des dossiers») puis choisir le dossier «D:\source»
  • «destination» puis choisir le dossier «D:\destination»
  • «Ajouter», choisir l’option «Autres procédures Gimp»…puis choisir le script «script-fu-masque»

9

Dans la zone de saisie de texte inMasque indiquer le chemin et le nom du fichier masque à appliquer soit «C:\masque.png» dans cet exemple.

10

Vérifier que le répertoire D:\destination contient bien un exemplaire de chaque image traitée automatiquement.