FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Automatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photo

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.

Créer un script Python

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 :

  • Nom : identifiant interne (ex. bonjour_monde)
  • Présentation : description brève
  • Aide : message d'aide
  • Auteur et Copyright
  • Date
  • Libellé : chemin menu (ex. <Image>/Image/Bonjour, le monde !)
  • Paramètres et résultats : [] pour aucun
  • Fonction : référence à first_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 !.

Automatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photoAutomatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photo

Passons à un script utile.

Ajouter des fonctionnalités

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.

Automatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photoAutomatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photoAutomatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photo

Idéal pour automatiser des workflows multi-étapes.

Inverser un calque

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.

Automatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photoAutomatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photo

Personnalisez pour vos besoins spécifiques.

Prochaines étapes en scripting GIMP

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

Automatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photoAutomatisez GIMP avec des scripts Python : Gagnez du temps sur la retouche photo

Commencez simple, progressez vers des automatisations puissantes.

Questions sur les scripts GIMP ? Astuces à partager ? Commentez ci-dessous !

Crédits image : Volkova Vera/Shutterstock

[]