Incorporer des bitmaps dans des documents SVG

Il est parfois nécessaire d'incorporer des images bitmaps dans un document svg, pour une raison simple : La reproduction de l'image bitmap n'est pas possible, ou sa vectorisation dégrade de manière trop importante l'image de départ. Inkscape propose en standard une fonction d'import qui permet, entre autres, d'importer des bitmaps. Dans le cas d'un bitmap, la fonction d'import ne place pas directement les images dans le document svg, mais crée un lien vers le document, sous la forme d'une URL.

Et c'est à ce moment que vous avez un problème. Les URL créées sont sous un forme absolue, et contiennent le chemin complet vers le fichier bitmap. Imaginons que vous ayez créé un lien vers une image située dans votre /home, le chemin d'accès au fichier bitmap incorporé dans le svg sera sous la forme /home/VOUS/chemin_vers_le_bitmap/bitmap.ext. Tant que le fichier svg reste chez vous et que vous ne déplacez pas le fichier bitmap, tout va bien. En revanche, si vous êtes amenés à déplacer votre fichier bitmap, ou si vous échangez votre fichier svg, le lien sera cassé : Le fichier svg conservera la trace de la présence d'une image et de ses propriétés, mais sera incapable de l'afficher et vous renverra une erreur.

Il existe 2 solutions à ce problème :

Incorporer les images : Inkscape est livré avec un script d'intégration des images dans le document svg, (En version 0.46, Effets>Images>Incorporer toutes les images). Ce script présente cependant un inconvénient majeur. Les images étant incorporées directement dans le document svg, sa taille se verra augmentée de celle du fichier bitmap. Si votre document svg contient de nombreuses images, son poids peut alors devenir rédhibitoire. Par ailleurs, Inkscape ne sait pas incorporer tous les formats de fichiers.

Créer des liens relatifs : C'est la solution que j'utilise. Elle nécessite un peu d'organisation, mais fonctionnera systématiquement, et vous offrira par ailleurs quelques avantages supplémentaires.

  • Créez un dossier imgs au même niveau que votre document svg. Ce dossier sera le lieu de stockage de tous vos fichiers bitmaps.
  • Importez vos fichiers bitmaps depuis ce dossier.
  • Après import, remplacez le lien absolu par un lien relatif sous la forme ./imgs/bitmap.ext (où bitmap.ext est le nom de votre fichier). Ce remplacement peut être fait directement sous Inkscape (Clic droit sur l'image, puis propriétés de l'image), ou avec un simple éditeur de texte (Recherchez les balises <image> dans le document svg)
  • Si vous êtes amenés à échanger ou déplacer votre document svg, faîtes le avec le dossier imgs

Avantages supplémentaires de cette méthode :

  • Vous avez déjà créé votre document svg et intégré vos bitmaps. Il suffit de créer a posteriori le dossier imgs, d'y placer vos bitmaps, puis de modifier les liens absolus en liens relatifs.
  • Si vous souhaitez changer le fichier bitmap a posteriori, par exemple pour intégrer une version haute résolution de votre bitmap, il suffit de remplacer le fichier dans votre dossier imgs. Inkscape s'adaptera automatiquement. Votre document svg ne sera pas modifié, puisqu'il s'agit d'un lien. Les autre propriétés de l'objet dans le document svg ne sont donc pas touchées.

L'équipe de développement d'Inkscape a conscience de ce problème. Une spécification a été proposée, permettant de développer un gestionnaire de lien dans une prochaine version d'Inkscape.

Vus : 443
Publié par Poupoul2 : 56