Archive for the ‘ plugin ’ Category

Comment créer un filtre dans le greffon G’mic ?

0-Introduction

Ce tutoriel a pour but de montrer comment créer un filtre personnalisé pour le greffon G’mic pour Gimp. Il part du principe que le lecteur ne connaît pas du tout le langage en ligne de commande G’mic.

Vous pouvez trouver des informations sur la façon de faire un filtre au début du fichier de commandes personnalisées par défaut et directement dans le greffon dans A propos > Création de filtres et aussi ci-dessous.

Ici, vous serez d’abord invité à créer un filtre très simple afin de comprendre les bases puis il s’agira d’assembler différents filtres afin d’en créer un meilleur.

1-Mon premier filtre

1.1-Le fichier des filtres personnalisés

Tous les filtres personnalisés que vous faites doivent être écrits dans un unique fichier texte appelé “.gmic“, n’oubliez pas le point au début du nom et n’ajouter rien d’autre, le nom de votre fichier texte n’est constitué que d’un point et de 4 lettres:: “.gmic“. Vous devez créer ce fichier dans votre répertoire “home” si vous êtes sous Linux, dans votre répertoire Application Data si vous êtes sous Windows et dans votre User Home folder si vous êtes sous MacOS. Ces 2 derniers systèmes d’exploitations peuvent rendre difficile la création de fichier commençant par un point: notepad or TextEdit peuvent vous aider au besoin.

1.2-Le filtre apparaît

Pour apparaître dans le greffon, vous devez inclure une ligne qui commence par #@gimp donnant le nom de votre filtre, la commande associée à ce filtre et optionnellement, la commande pour créer l’aperçu. Quelque chose comme:

#@gimp Mon premier filtre: mon_premier_filtre_commande, mon_premier_filtre_commande_preview

Vous pouvez essayer, mettez cette ligne dans votre fichier .gmic, rafraichissez les filtres G’mic et il devrait apparaître en haut de vos Filtres disponibles.

1.3-Le filtre dit quelque chose

Dans la partie droite de la fenêtre du greffon, vous pouvez mettre du texte et proposer différentes sortes de variables utilisables par le filtre. Pour cela, vous devez encore ajouter des lignes commençant par #@gimp. Vous pouvez par exemple recopier les lignes ci-dessous dans votre fichier .gmic et rafraîchir les filtres.

#@gimp Mon premier filtre: mon_premier_filtre_commande, mon_premier_filtre_commande
#@gimp : note = note("C'est mon premier filtre, je suis tellement excité!")
#@gimp : sep = separator()
#@gimp : Angle = float(45,0,360)
#@gimp : Remplir l'espace vide = choice("en noir","comme les bords","en répétant l'image")

1.4-Le filtre fait quelque chose

Jusqu’ici, votre filtre ne marche pas, si vous cliquer sur Valider, une erreur apparaîtra. C’est parce qu’aucune commande ne s’appelle “mon_premier_filtre_commande“, elle doit être créée en utilisant le langage G’mic. Donc, notre premier filtre peut être fini avec 2 lignes supplémentaires pour devenir:

#@gimp Mon premier filtre: mon_premier_filtre_commande, mon_premier_filtre_commande
#@gimp : note = note("C'est mon premier filtre, je suis tellement excité!")
#@gimp : sep = separator()
#@gimp : Angle = float(45,0,360)
#@gimp : Remplir l'espace vide = choice("en noir","comme les bords","en répétant l'image")
mon_premier_filtre_commande :
  -rotate $1,$2

si vous mettez ceci dans votre fichier .gmic et rafraichissez les filtres une fois de plus, vous avez un filtre pleinement fonctionnel capable de tourner une image. Vous pouvez ajuster l’angle de rotation de 0 à 360° et la valeur proposée par défaut est 45. Vous avez 3 choix pour “remplir l’espace vide”.
La commande utilisée par votre filtre est “mon_premier_filtre_commande” et c’est une commande très simple qui utilise l’instruction -rotate et les 2 variables $1 et $2 font référence à celles proposées au-dessus: “Angle” et “Remplir l’espace vide”.

1.5-Le filtre fait ce que vous voulez

Maintenant, vous avez les bases, vous avez juste besoin de vous inspirer des filtres déjà disponibles et de leur code source et si vous ne le connaissez pas encore, apprenez le langage de programmation G’mic. Pour ceux encore réticents à son apprentissage, il est possible d’assembler des filtres déjà existant en connaissant juste quelques trucs en plus.

2-Assembler des filtres

Après avoir utilisé le greffon, vous trouvez peut-être que ce serait bien si certains de vos filtres favoris pouvaient être assemblés afin de minimiser le nombre de clics. C’est d’une certaine façon possible.

2.1-Mimer un travail séquentiel

Si votre travail est purement séquentiel, c.à.d. si vous appliquez votre premier filtre sur une image, puis vous appliquez votre second filtre sur le résultat obtenu, etc. il est alors relativement facile de créer un filtre qui effectue les deux en un seul clic. Pour ça, vous devez récupérer les lignes de commandes exécutées par le greffon et les utiliser pour recréer un filtre comme expliqué au premier chapitre.
Par exemple, imaginons que vous vouliez assembler B&W pencil suivi de Soft glow (tous deux dans le répertoire Artistic folder). Pour récupérer la ligne de commande, la façon la plus facile est d’exécuter Gimp depuis un terminal et de régler les messages de sortie du greffon sur verbeux. Pour les 2 filtres en questions, vous obtiendriez dans votre console (ou votre fichier log) des lignes intéressantes comme:

[gmic_gimp]./apply/ -v -99 -gimp_pencilbw 0.3,60,0,0,0
[gmic_gimp]./apply/ -v -99 -gimp_glow 1,0,0

Votre nouveau filtre peut alors être écrit:

#@gimp BWpencil et Glow: bwpencil_glow, bwpencil_glow
bwpencil_glow :
  -gimp_pencilbw 0.3,60,0,0,0
  -gimp_glow 1,0,0

Et cela marche de la même façon avec 3, 4 et plus de filtres.

2.2-Proposer des réglages

Mais vous aurez remarqué (si vous l’avez essayé), il n’y a pas de réglages proposés dans l’assemblage de filtres. Pour en ajouter, vous devez faire comme expliqué ci-dessus. Ainsi, si vous voulez pouvoir régler la taille et l’amplitude pour B&W pencil et l’amplitude pour Soft glow, vous adapterez de cette façon:

#@gimp BWpencil and Glow: bwpencil_glow, bwpencil_glow
#@gimp : taillle = float(0.3,0,5)
#@gimp : Amplitude pour B&W pencil= float(60,0,200)
#@gimp : Amplitude pour Soft glow = float(1,0,20)
bwpencil_glow :
  -gimp_pencilbw $1,$2,0,0,0
  -gimp_glow $3,0,0

2.3-Assemblage complexe

Les choses deviennent plus compliquées quand vous gérer plusieurs images pendant la séquence de filtres que vous voulez assembler. Cela arrive, par exemple, si vous conservez l’original en réglant le Mode de sortie sur Nouveau(x) calque(s) (ou Nouveau(x) quoique ce soit) ou si un de vos filtres initiaux créent plusieurs images (comme Layers > Tiles to layers ou Layers > Split tones). Vous pouvez maitrisez cela en apprenant 2 autres petits trucs faciles du langage G’mic.

2.3.1-Conserver l’original

Jusqu’à maintenant, pour appeler une commande G’mic, vous mettiez un tiret (-) suivi du nom de la commande, par exemple:

  -gimp_pencilbw 0.3,60,0,0,0

Et bien, si vous mettez 2 tirets à la place, G’mic procède de la même façon avec les images, mais il conservera aussi l’original. Si vous essayez le filtre ci-dessous, même si vous réglez le Mode de sortie sur Sur place, vous obtenez votre résultats dans un nouveau calque:

#@gimp Keep BWpencil : keep_bwpencil, keep_bwpencil
keep_bwpencil :
  --gimp_pencilbw 0.3,60,0,0,0
2.3.2-Gérer plusieurs images

Pour gérer plusieurs images, G’mic leur donne des numéros commençant par 0. Donc, dans l’exemple précédent, votre image originale serait la numéro 0 et celle créée par le B&W pencil serait la numéro 1.
Si vous ne spécifiez rien, par défaut, la commande suivante est appliquée à toutes les images. Par exemple, dans le filtre qui suit, Soft glow est appliqué sur l’originale et sur celle provenant de B&W pencil.

#@gimp Keep BWpencil plus glow : keep_bwpencil_glow, keep_bwpencil_glow
keep_bwpencil_glow :
  --gimp_pencilbw 0.3,60,0,0,0
  -gimp_glow 1,0,0

Mais, si vous accolez le numéro de l’image entre crochets à votre nom de commande, alors le filtre ne sera appliqué qu’à l’image spécifiée. Ainsi, si vous modifiez le filtre précédent comme ci-dessous, le Soft glow n’est exécuté que sur l’image résultant de B&W pencil, laissant l’originale intacte:

#@gimp Keep BWpencil plus glow : keep_bwpencil_glow, keep_bwpencil_glow
keep_bwpencil_glow :
  --gimp_pencilbw 0.3,60,0,0,0
  -gimp_glow[1] 1,0,0

Vous pouvez spécifiquement demander à un filtre de s’exécuter sur plusieurs images en ajoutant d’autres nombres séparés par une virgule. Pour filtrer la première, la troisième et la cinquième, vous accoleriez [0,2,4] au nom de votre commande. Il y en plus à savoir à ce sujet.

2.3.2-Finissions ce machin

Au point où on en est, ce filtre me semble non-fini. J’ai l’impression qu’il pourrait être utile à quelqu’un si les 2 calques obtenus étaient recomposés ensemble avec une sorte de Layers Multiply et si quelques possibilités de réglage étaient offertes à l’utilisateur. Et puisque 2 filtres ont été construits pendant ce tutoriel, mettons-les tous les deux dans le fichier .gmic afin qu’ils puissent tous deux être utilisés dans le greffon. En totalité, cela ressemblera à quelque chose comme:

#@gimp Mon premier filtre: mon_premier_filtre_commande, mon_premier_filtre_commande
#@gimp : note = note("C'est mon premier filtre, je suis tellement excité!")
#@gimp : sep = separator()
#@gimp : Angle = float(45,0,360)
#@gimp : Remplir l'espace vide = choice("en noir","comme les bords","en répétant l'image")
mon_premier_filtre_commande :
  -rotate $1,$2

#@gimp Filtre du tutoriel  : filtre_tuto, filtre_tuto
#@gimp : Size = float(0.3,0,5)
#@gimp : Amplitude pour B&W pencil= float(60,0,200)
#@gimp : Amplitude pour Soft glow = float(1,0,20)
filtre_tuto :
  --gimp_pencilbw $1,$2,0,0,0
  -gimp_glow[1] $3,0,0
  -compose_multiply

2.4-Pour aller plus loin

Puisque qu’il s’agit de programmation, il est probable que vous rencontriez quelques bugs. Pour debugger, penser à régler les Messages de sortie sur Mode verbeux ou Très verbeux. Et ne restez pas bloqués seuls venez trouver inspiration et aide et partager ce que vous avez fait.
Une fois que vous aurez un peu jouer, vous voudrez peut-être apprendre quelques trucs en plus.

Advertisement