Chapitre 11.  Compléter GIMP

Table des matières

1. Greffons
1.1. Introduction
1.2. Utiliser les greffons
1.3. Installation de nouveaux greffons
1.4. Écrire des greffons
2. Utiliser les Script-Fu
2.1. Script-Fu ?
2.2. Installer des Script-Fu
2.3. Ce qu'il faut faire et ne pas faire
2.4. Différentes sortes de Script-Fu
2.5. Les scripts autonomes
2.6. Scripts dépendant d'une image
3. Didacticiel pour Script-Fu
3.1. Faisons connaissance avec Scheme
3.2. Variables et fonctions
3.3. Listes, des listes et encore des listes
3.4. Votre premier script de Script-Fu
3.5. Donner un peu plus de corps à votre script
3.6. Compléter le script Text Box

1.  Greffons

Historique des versions
Version $Revision: 1985 $ 2007-07-05 j.h

1.1.  Introduction

L'un des points les plus agréables du GIMP est qu'on peut aisément lui ajouter des fonctionnalités en utilisant des greffons. Les greffons de GIMP sont des programmes extérieurs qui tournent sous le contrôle de l'application principale du GIMP en interaction très proche avec lui. Les greffons peuvent manipuler une image presque de la même manière qu'un utilisateur. Leur avantage est qu'il est beaucoup plus simple d'ajouter une possibilité à GIMP en écrivant un petit greffon plutôt qu'en modifiant l'énorme quantité de lignes de codes qui constituent le noyau de GIMP. De nombreux greffons sont écrits en langage C et ne font que 100-200 lignes.

Plusieurs douzaines de greffons sont inclus dans la distribution principale de GIMP et installés en même temps que lui. La plupart sont accessibles via le menu Filtres (en fait, ce menu n'est constitué que de greffons), mais bon nombre se répartissent dans les autres menus. La plupart du temps vous les utiliserez sans même le savoir : par exemple, la fonction "Normaliser" qui corrige les couleurs automatiquement est un greffon, bien que rien dans la façon dont elle travaille ne le laisse supposer.

Beaucoup d'autres greffons que ceux fournis avec le GIMP sont disponibles sur la Toile. Un bon nombre se trouvent dans le Registre des greffons de GIMP [GIMP-REGISTRY], un site web dont le but est de centraliser la distribution des greffons. Les créateurs de greffons peuvent les y déposer ; les utilisateurs à la recherche d'un greffon spécifique peuvent le rechercher sur ce site de plusieurs manières.

N'importe qui dans le monde peut écrire un greffon pour GIMP et le mettre à disposition sur le web, dans le registre ou sur un site personnel, et de nombreux greffons intéressants peuvent être obtenus ainsi - certains sont décrits plus loin dans le manuel utilisateur. Avec une telle liberté il y a une part de risque : le fait que n'importe qui puisse le faire signifie qu'il n'y a pas de contrôle qualité. Les greffons distribués avec GIMP ont tous été testés et ajustés par les développeurs, mais parmi ceux que vous pourrez télécharger, certains ont été écrits en quelques heures et distribués sans autre forme de procès. Certain créateurs de greffons ne s'inquiètent pas de la robustesse, et même pour ceux qui le font, leur possibilité de les tester sur de nombreux systèmes, dans de nombreuses conditions, est souvent limitée. En résumé, quand vous téléchargez un greffon, cela ne vous coûte rien et parfois la qualité s'en ressent. Nous ne disons pas cela pour vous décourager mais juste pour que vous compreniez ce qu'il en est.

[Avertissement] Avertissement

Les greffons sont des programmes exécutables, ils peuvent faire tout ce que d'autres programmes font, y compris installer des « Back door » (porte dérobée) sur votre système ou compromettre sa sécurité. N'installez un greffon que s'il vient d'une source sûre.

Cet avertissement vaut aussi bien pour le Registre de greffon que pour les autres sources. Le Registre est à disposition de n'importe quel créateur qui veut l'utiliser : il n'y a pas de supervision systématique. Bien sûr si les webmestres apprennent la présence de quelque chose de diabolique, ils l'enlèveront (cela n'est pas encore arrivé). Il y a toutefois, pour GIMP et ses greffons, la même garantie que pour tout autre logiciel libre : à savoir aucune.

[Attention] Attention

Les greffons existent dans GIMP depuis de nombreuses versions. Toutefois, un greffon écrit pour une version de GIMP ne peut presque jamais être utilisé avec une des autres versions. Il faut les « porter » : parfois c'est facile, parfois non. De nombreux greffons sont disponibles pour de nombreuses versions. Aussi, avant d'installer un greffon assurez-vous qu'il est écrit pour votre version de GIMP.

1.2.  Utiliser les greffons

La plupart du temps vous utiliserez un greffon tout comme les autres outils de GIMP, sans même savoir qu'il s'agit d'un greffon. Mais il y a quelques petites choses qu'il est utile de savoir sur les greffons.

Généralement, les greffons sont moins robustes que le noyau de GIMP. Quand GIMP plante, c'est une affaire très sérieuse qui peut provoquer des problèmes et des maux de têtes. Quand un greffon plante, les conséquences sont généralement moins dramatiques. La plupart du temps vous pouvez continuer votre travail sans vous en soucier.

[Note] Note

Du fait que les greffons sont des programmes séparés, ils communiquent avec le noyau de GIMP d'une manière spéciale : les développeurs de GIMP appellent cela « talking over a wire  » (parler sur un fil). Quand un greffon se plante, la communication s'arrête et vous voyez un message d'erreur à propos d'une « erreur de lecture d'un fil ».

[Astuce] Astuce

Quand un greffon se plante, GIMP vous affiche un message menaçant qui vous informe que le greffon peut l'avoir laissé dans un état corrompu, vous devrez alors sauvegarder vos images et quitter GIMP. En théorie, cela est vrai, parce que les greffons peuvent altérer à peu près tout dans GIMP, mais en pratique, l'expérience montre que la corruption est plutôt rare, et beaucoup d'utilisateurs continuent de travailler sans se soucier de cela. Notre conseil est de réfléchir aux conséquences d'un éventuel problème et de peser le pour et le contre.

Du fait de leur manière de communiquer avec GIMP, les greffons n'ont pas de moyen de savoir si vous avez effectué des changements sur l'image après leur lancement. Si vous lancez un greffon et modifiez l'image en utilisant un outil en même temps, le greffon se plantera sûrement et s'il ne le fait pas il vous amènera à un résultat erroné. Vous ne devez pas lancer plus d'un greffon à la fois sur une image, ni faire quoi que ce soit sur l'image avant que le greffon n'en ait fini avec elle. Si vous ne suivez pas ce conseil, non seulement vous abimerez probablement l'image, mais vous abimerez aussi probablement le système d'annulation, aussi ne pourrez-vous pas revenir à l'état d'avant vos erreurs.

1.3.  Installation de nouveaux greffons

Les greffons fournis avec GIMP ne nécessitent pas d'installation particulière, contrairement à ceux que vous téléchargez. Il y a plusieurs scénarios, dépendant de votre système d'exploitation et de la structure du greffon. Sous Linux il est généralement aisé d'installer un nouveau greffon ; sous Windows c'est soit très simple soit très compliqué. De toute façon il vaut mieux examiner ces deux cas séparément.

1.3.1.  Linux

La plupart des greffons peuvent être classés en deux catégories : les petits dont le code source tient dans un seul fichier .c, et les plus gros dont le code source est distribué dans un répertoire contenant de nombreux fichiers dont un Makefile.

Pour un simple greffon "fichier unique", appellons le borker.c, l'installation consiste a lancer la commande gimptool --install borker.c. Cette commande compile le greffon et l'installe dans votre répertoire personnel "plug-ins", qui est ~/gimp-version/plugins à moins que vous ne l'ayez changé. Il sera chargé automatiquement lors du prochain lancement de GIMP. Vous n'avez pas besoin d'être root pour faire cela ; en fait vous ne devriez pas l'être. Si la compilation du greffon ne fonctionne pas, eh bien soyez créatif !

Une fois que vous avez installé un greffon, comment le lancer ? Le chemin dans le menu est déterminé par le greffon lui même, aussi pour répondre à cette question vous devrez au choix regarder la documentation du greffon (s'il y en a une) ou lancer le dialogue de Description des greffons (via le menu Exts/Détails des greffons) rechercher le greffon par son nom et regarder dans l'onglet Vue en arbre. Si vous n'avez toujours pas trouvé, finalement explorez les menus jusqu'à ce que vous l'y trouviez, ou bien regardez le code source ce qui est encore le plus simple.

Pour les greffons plus complexes, organisés comme un répertoire avec plusieurs fichiers, il devrait y avoir un fichier appelé soit INSTALL soit README, contenant les instructions. S'il n'y a rien, le mieux est de jeter le greffons à la poubelle et de passer du temps sur autre chose : du code écrit avec aussi peu de considération pour l'utilisateur risque d'être expérimental.

Certains greffons (et plus spécialement ceux basé sur le modèle des greffons de GIMP) sont prévus pour être installés dans le répertoire principal de GIMP, plutôt que dans votre répertoire personnel. Pour ceux-là, il vous faudra être root pour lancer la dernière étape de l'installation (make install).

Si vous installez dans votre répertoire de greffons personnels un greffon ayant le même nom que l'un du répertoires des greffons du système, seul celui de votre répertoire sera chargé. Vous aurez des messages vous en informant chaque fois que vous lancerez GIMP. C'est probablement une situation à éviter.

1.3.2. Windows

Windows est un environnement plus problématique que Linux pour la construction de logiciels. Toute distribution décente de Linux vient avec tous les outils nécessaires à la compilation de logiciels, et ils ont tous un mode de fonctionnement similaire, mais Windows n'offre pas de tels outils. Il est possible de configurer un bon environnement de développement sous Windows, mais cela nécessite une bonne quantité d'argent ou de connaissances et d'efforts.

Pour en revenir au greffon de GIMP soit vous avez de quoi compiler, soit vous ne pouvez pas. Si vous ne pouvez pas, il vous faudra trouver une version compilée du greffon (ou bien demander à quelqu'un de le compiler pour vous) que vous n'aurez qu'à mettre dans votre répertoire de greffon personnel. Si vous pouvez compiler (en l'occurence si votre environnement vous permet de compiler GIMP), alors vous devez sans doute être au fait de ces choses et vous n'avez plus qu'à suivre les instructions données pour Linux.

Si vous voulez vous lancez dans l'aventure de la compilation de GIMP sous Windows, vous trouverez la description la plus récente du HowToCompileGimp/MicrosoftWindows [GIMP-WIKI01] (en Anglais). Comme il s'agit d'un Wiki, tout le monde peut librement le compléter, aussi, s'il vous plaît, tenez-le à jour en y ajoutant vos conseils tirés de votre expérience.

1.3.3.  Apple Mac OS X

La façon d'installer des greffons sur un système X dépend de la façon dont vous avez installé GIMP lui-même. Si vous êtes un des courageux qui a installé GIMP au moyen d'un des gestionnaires de paquetages comme fink [FINK] ou darwinports, [DARWINORTS], l'installation se fait comme il a été dit pour Linux. La seule différence est que certains greffons peuvent même être présents dans le dépot central de votre gestionnaire de paquetage : essayez-les.

Si vous êtes de ceux qui préfèrent utiliser un paquetage précompilé tel que GIMP.app, vous voudrez certainement vous en tenir à ce paquetage. Vous pouvez essayer d'obtenir de l'auteur le greffon précompilé de vos rêves mais je ne parierai pas sur le résultat. Produire vos propres binaires nécessite malheureusement de recourir aux gestionnaires de paquetage ci-dessus mentionnés.

1.4.  Écrire des greffons

Si vous voulez apprendre comment écrire un greffon, vous trouverez de l'aide sur le site des développeurs du GIMP [GIMP-DEV-PLUGIN] (en anglais). GIMP est un programme complexe, mais l'équipe de développement à fait d'ardents efforts pour faciliter l'apprentissage de l'écriture des greffons : de bonnes instructions, des exemples et la principale bibliothèque que les greffons utilisent comme interface avec GIMP (appelée « libgimp  ») a une API très bien documentée. Les bons programmeurs, qui apprennent en changeant les greffons existants, peuvent accomplir des choses intéressantes après quelques jours de travail.