La retouche photo implique souvent des tâches répétitives, surtout avec de grands albums d'images. Automatiser GIMP via des scripts Python permet d'économiser temps et efforts. Ce tutoriel, rédigé par un expert en scripting GIMP, vous guide pas à pas pour débuter.
Écrire des scripts Python pour GIMP demande un apprentissage, mais les résultats sont gratifiants. Commençons par les bases avec des exemples simples et fonctionnels.
Avant de plonger dans un projet avancé, posons les bases. Ouvrez un éditeur de texte et copiez ce code Hello World corrigé et testé :
#!/usr/bin/python
from gimpfu import *
def first_plugin(timg, tdrawable):
print("Bonjour, monde !")
register(
"bonjour_monde",
"Affiche un message Bonjour, le monde !",
"Affiche un message Bonjour, le monde !",
"Brad Jones",
"Brad Jones",
"2017",
"<Image>/Image/Bonjour, le monde !",
"RVB*, GRIS*",
[],
[],
first_plugin
)
main()Explication rapide : Les deux premières lignes initialisent le script et importent les bibliothèques GIMP. La fonction first_plugin contient les instructions principales. Les paramètres de register informent GIMP sur votre plugin :
Appelez enfin main(). Enregistrez en .py (type : Tous les fichiers). Copiez dans le dossier plugins GIMP : Windows (Program Files/GIMP 2/lib/gimp/2.0/plug-ins), macOS (~/Library/Application Support/GIMP/2.10/plug-ins). Redémarrez GIMP : menu Image > Bonjour, le monde !.


Passons à un script utile.
Réécrivons pour générer une image texte. Copiez ce code optimisé :
#!/usr/bin/env python
from gimpfu import *
def test_script(customtext, font, size):
img = gimp.Image(1, 1, RGB)
layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
gimp.displays_flush()
register(
"python_test",
"Générateur de texte",
"Crée une image avec du texte personnalisé",
"Brad Jones",
"Brad Jones",
"2017",
"Générateur de texte",
"*",
[
(PF_STRING, "customtext", "Texte personnalisé", "Les scripts sont pratiques !"),
(PF_FONT, "font", "Police", "Sans"),
(PF_SPINNER, "size", "Taille de la police", 100, (1, 3000, 1))
],
[],
test_script,
menu="<Image>/Fichier/Créer"
)
main()Structure similaire : Création image, ajout texte via paramètres utilisateur, redimensionnement, affichage. Les nouveaux paramètres (PF_STRING, PF_FONT, PF_SPINNER) permettent l'interaction. Enregistrez, copiez, redémarrez GIMP > Fichier > Créer > Générateur de texte.



Idéal pour automatiser des workflows multi-étapes.
Pour modifier une image ouverte, implémentons l'inversion de couleurs du calque actif :
#!/usr/bin/env python
from gimpfu import *
def invert_current_layer(img, drawable):
pdb.gimp_invert(drawable)
register(
"python_fu_invert_current_layer",
"Inverser le calque",
"Inverser les couleurs du calque courant",
"Brad Jones",
"Brad Jones",
"2017",
"<Image>/Filtres/Personnalisé/Inverser le calque courant",
"*",
[],
[],
invert_current_layer
)
main()La clé : pdb.gimp_invert(drawable). Enregistrez et testez via Filtres > Personnalisé > Inverser le calque courant.


Personnalisez pour vos besoins spécifiques.
Expérimentez ! Identifiez vos tâches répétitives. Consultez Aide > Navigateur de procédures pour les PDB utilisables.


Commencez simple, progressez vers des automatisations puissantes.
Questions sur les scripts GIMP ? Astuces à partager ? Commentez ci-dessous !
Crédits image : Volkova Vera/Shutterstock
[]