Exporter vers Gimp sous Windows, c’est possible !

Décryptons les scripts

Les utilisateurs les plus curieux l’auront sans doute remarqué, certaines options d’exportation et d’importation sont disponibles sous Gnu/Linux, mais pas sous Windows. Il ne s’agit pas ici de favoritisme délibéré (vous en doutiez ?) mais découle du fait que les développeurs d’Inkscape sont principalement équipés de Gnu/Linux ou OSX. Du coup, certaines fonctionnalités sont tout d’abord développées avec ces systèmes d’exploitation, puis portées (ou pas) vers Windows. Et dans le cas qui nous préoccupe, c’est une bonne partie du mécanisme gérant les scripts d’entrée et sortie qui est en cause. Les filtres qui ne nécessitent pas d’application tierce fonctionnent la plupart du temps parfaitement bien, mais pour ceux qui doivent s’appuyer sur Gimp ou Dia, par exemple, ce n’est pas tout à fait pareil.

Bon, pour notre exemple, prenons une extension utilisée par les concepteurs de sites pour exporter un fichier SVG vers Gimp tout en conservant la grille et les guides et en convertissant chaque calque du fichier en un calque Gimp. Lorsque le système est correctement paramétré, l’extension apparaît dans le menu Fichier>Enregistrer sous, sous l’intitulé « Gimp XCF avec conservation des calques ».

Un peu de technique (juste un peu)

Regardons de plus près comment tout cela fonctionne (ou plutôt ne fonctionne pas…).

Tout d’abord, nous avons un script d’exportation. Un script tout bête, qui ressemble à n’importe quel script disponible dans le menu Extensions. Sauf que celui-ci est spécial, puisque dédié à l’exportation. Pour l’exécuter, Inkscape à besoin d’un fichier faisant l’interface entre l’application et l’interpréteur Python, en voici un extrait (issu de gimp_xcf.inx).

<dependency type= »executable » location= »path »>gimp</dependency>

<param name= »guides » type= »boolean » _gui-text= »Save Guides: »>false</param>
<param name= »grid » type= »boolean » _gui-text= »Save Grid: »>false</param>
<output>
<extension>.xcf</extension>
<mimetype>application/x-xcf</mimetype>
<_filetypename>GIMP XCF maintaining layers (*.xcf)</_filetypename>
<_filetypetooltip>GIMP XCF maintaining layers (*.xcf)</_filetypetooltip>
<dataloss>true</dataloss>
</output>

Les éléments <param> sont les paramètres proposés à l’utilisateur lorsque l’extension est exécutée. Tout le reste au-dessous définit comment apparaît cette extension dans le menu Enregistrer sous. L’élément <output> permet à Inkscape de reconnaitre l’extension comme un filtre de sortie. Et enfin, pour terminer, l’élément <dependency> indique que l’exécutable gimp doit impérativement se trouver dans le chemin de l’utilisateur. Sinon, rien, que dalle, pas d’exportation XCF, désolé, c’est niet. Ah si, quand même, ça laisse un petit message d’erreur dans votre dossier de configuration personnel d’Inkscape (C:\Documents and Settings\%USERNAME%\Application Data\Inkscape\extension-errors.log).

Lorsque ça fonctionne, l’extension provoque l’ouverture de la boîte de dialogue suivante :

Finalement, ce n’est pas si compliqué !

Si avec Gnu/Linux tout fonctionne bien sans rien faire, c’est parce que l’exécutable de Gimp s’appelle bien gimp, et qu’il est généralement dans le chemin /usr/bin, avec de nombreuses autres applications, et que ce chemin est pratiquement tout le temps dans l’environnement utilisateur (en gros, quand le système d’exploitation ne sait pas où est une application appelée par son seul nom, c’est dans ce chemin qu’il va regarder).

Sous Windows par contre, les exécutables des applications ne sont pas stockés dans un dossier commun, et ne sont donc pas par défaut dans l’environnement utilisateur. Il faut alors les ajouter, si besoin, dans la variable qui va bien. Voici comment faire (avec XP, mais ça ne doit pas être trop différent avec Seven et Vista) :

1. Ajoutez le chemin vers Gimp dans l’environnement système (tout ce qui est dans le chemin système est propagé à l’environnement utilisateur).

1a. Cliquez-droit sur l’icône Poste de travail et choisissez Propriétés dans le menu contextuel pour ouvrir la boîte de dialogue des propriétés système.
1b. Dans l’onglet Avancé, cliquez sur le bouton Variables d’environnement, tout en bas à gauche.
1c. Dans les variables système, partie basse de la boîte des variables d’environnement, double-cliquez sur la variable Path.
1d. Ajouter à la fin de la chaîne un point-virgule, puis le chemin vers Gimp. Avec Gimp 2.6, il faut ajouter la chaîne suivante « ;C:Program Files\GIMP-2.0\bin ».
1e. Fermez proprement (en cliquant Oui partout) les boîtes de dialogue précédemment ouvertes.

2. Renommez l’exécutable.

2a. Dans le dossier d’installation de Gimp, copier l’exécutable « gimp-2.6.exe ».
2b. Renommez la copie en « gimp.exe ».

3. Téléchargez le script à jour. Si vous avez une version d’Inkscape antérieure à la 0.49 (oui, je sais, la 0.48 n’est toujours pas sortie, mais mesurez votre chance, je vous donne là une astuce pour une fonctionnalité qui n’est sensée fonctionner que dans plusieurs mois !), votre version du script plante lamentablement (pour une sombre histoire d’antislash dans les chemins, allez comprendre…). Effectuez alors les étapes suivantes.

3a. Téléchargez la dernière version du fichier script [1]. Si vous êtes gourmands, et que vous voulez aussi profiter d’une nouvelle option permettant d’exporter (ou pas) le fond de page dans chaque calque Gimp et d’un nouvel onglet d’aide (le tout non traduit, désolé !), téléchargez aussi le fichier inx [2].
3b. Copiez le ou les fichiers dans le dossier C:Program Files\Inkscape\share\extensions.

4. Relancez Inkscape, puis ouvrez Fichier>Enregistrer sous pour vérifier qu’une nouvelle ligne mentionnant « Gimp XCF avec conservation des calques » a bien été ajoutée.

Si par malheur ça ne fonctionnait pas comme espéré, n’hésitez pas à poser vos questions sur le site Launchpad (en français ou en anglais) [3] ou à déposer un rapport de bogue (en anglais) sur le même site.

Amusez-vous bien !

Édition du 14 janvier 2013 : des modifications effectuées récemment dans la prise en charge des traduction dans le code en développement ont rendu incompatible l’extension avec la version stable d’Inkscape. Pour que tout fonctionne normalement (mis à part les messages émis par le code Python, qui ne seront pas traduits), il faut supprimer la ligne contenant inkex.localize() dans le fichier gimp_xcf.py.

[1] http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/annotate/head%3A/share/extensions/gimp_xcf.py

[2] http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/annotate/head%3A/share/extensions/gimp_xcf.inx

[3] https://launchpad.net/inkscape