Où placer les scripts (plug-in) python pour gimp ?
MacOSX :
/Users/VOTRE_USERNAME/Library/Application Support/GIMP/2.10/plug-ins/
Ubuntu :
Si gimp est installé via snap :
/home/VOTRE_USERNAME/snap/gimp/current/.config/GIMP/2.10/plug-ins/
/home/VOTRE_USERNAME/.config/GIMP/2.10/plug-ins
Contenu du plug-in
Ce plugin permet de mettre "2021" dans le calque texte qui a pour nom "date".
#!/usr/bin/env python
# coding: utf-8
import gimpcolor # Necessaire pour déclarer la couleur plus bas
import math
from gimpfu import *
# La fonction principale du script avec les parametres d'entrée
def montest(
infile,
outfile):
# Couleur noire
black = gimpcolor.RGB(0,0,0)
# Charge xcf
img = pdb.gimp_file_load(infile, infile)
# Charge un calque par son nom : "date"
layer = pdb.gimp_image_get_layer_by_name(img, "date")
# Mets la couleur noire et mets "2021" dans le calque texte
pdb.gimp_text_layer_set_color(layer, black)
pdb.gimp_text_layer_set_text(layer, "2021")
# Enregistrer xcf
pdb.gimp_xcf_save(0, img, None, outfile, outfile)
# Register permet d'enregistrer son plugin
register(
"montest", # Nom du plugin il devra être prefixe par "python-fu-" lors de l'appel
"Contenu de la modale", # Ce qui s'affichera dans la boite à l'appel du plugin (quand c'est fait par l'interface
"Description", # Description
"rivsc", # Auteur
"MIT", # License
"2021", # Date création
"xxxxx", # Nom dans l'interface gimp
"RGB*, GRAY*",
[
(PF_FILENAME, "infile", "Input file", "." ), # Parametre dans l'interface correspondant a la methode python
(PF_FILENAME, "outfile", "Output file", "." ), # Parametre dans l'interface correspondant a la methode python
],
[],
montest, # Methode python devant correspondre a la def plus haut
menu="<Image>/Tools") # Endroit du menu ou le script sera visible
main()
pdb signifie "Procedural Database Procedures", toutes les fonctions GIMP s'appelle via cet objet (Voir ici)
Pour connaitre la liste des fonctions disponibles, lancez GIMP, puis dans Filtres -> Python-fu -> Console -> Browse, vous obtiendrez la liste ainsi que la documentation de chaque fonction sur la partie droite.
Pour vous aider, vous pouvez utiliser ce script ruby qui génère un squelette de plugin gimp : Générateur plugin GIMP
Attention vos plugins python pour gimp doivent être executable :
chmod +x montest.py
Comment l'appeler en ligne de commande ?
(Attention il faut rajouter "python-fu-" devant le nom lors de l'appel en ligne de commande, j'ai cherché 2h pour ça :/). Sinon vous aurez une erreur "Error: eval: unbound variable: montest".
MacOSX
/Applications/GIMP-2.10.app/Contents/MacOS/gimp --no-interface --batch='(python-fu-montest RUN-NONINTERACTIVE "/Users/scl/Downloads/mon_fichier.xcf" "/Users/scl/Downloads/mon_fichier_modifie.xcf")' -b '(gimp-quit 0)'
Ubuntu
gimp --no-interface --batch='(python-fu-montest RUN-NONINTERACTIVE "/home/scl/Downloads/mon_fichier.xcf" "/home/scl/Downloads/mon_fichier_modifie.xcf")' -b '(gimp-quit 0)'
Avec Flatpak il faut appeler le script de cette manière :
gimp --no-interface --batch='(python-fu-montest RUN-NONINTERACTIVE "/home/scl/Downloads/mon_fichier.xcf" "/home/scl/Downloads/mon_fichier_modifie.xcf")' -b '(gimp-quit 0)'
Dans l'interface vous le retrouverez (comme déclaré dans le fichier python) dans "Outils" -> "xxxxx".
Voilà votre premier plugin gimp en python :)