Accueil

Traduction

Tutoriel Inkscape - sommaire

Tutoriel Inkscape - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

Inkscape : les calques

Nous allons aborder dans cette page une technique très utile : les calques.

Remarque : l'instruction HTML pour insérer ce document Inkscape est :
<img src ="chaumiere.svg" class="grand" style ="border : 15px solid gold; box-shadow : 20px 20px 20px gray;" >
Ainsi l'image ressemble à un beau tableau avec son cadre.

Pourquoi les calques ?

Il n'est pas obligatoire d'utiliser les calques. Mais leur emploi facilite énormément le travail du graphiste.
Par défaut un document Inkscape a un seul calque appelé calque1.

Si un document ne comprend qu'un calque il contient forcément de nombreux objets et donc la sélection d'un de ces objets devient des plus délicate. La crise de nerfs est assurée ...

Donc l'astuce est de répartir les objets sur plusieurs calques.
Quand vous pensez avoir finalisé le premier calque vous le verrouillez et vous ajouter un nouveau calque au dessus du précédent. Ainsi vous êtes assuré que les modifications ne concernent que le deuxième calque.
Ensuite vous verrouillez le deuxième calque puis vous en ajoutez un troisième et ainsi de suite ...

Par ailleurs je vous montre aussi dans ce chapitre que l'utilisation des calques permet de réaliser ensuite très facilement un document animé.

Production d'un document statique contenant plusieurs calques

Taille de ce nouveau document de 900 pixels par 900.

Le premier calque

image SVG

Des rectangles floutés (ciel et sol) et des ellipses floutées (nuages)

Le deuxième calque

La maison : des rectangles floutés puis convertis en chemins afin de pouvoir les transformer en trapèzes par déplacement de certains noeuds.

L'arbre : aucune difficulté.

Le troisieme calque

Emploi du "crayon" pour dessiner à main levée en particulier pour créer le chemin vers la porte.
Le chemin vers la porte est justement un "chemin" dans le jargon SVG & Inkscape.

Pensez à simplifier ce chemin ; commande : Chemin/simplifier

Ensuite vous le sélectionnez pour le remplir de gris et supprimer son contour.

Production d'un document animé

La version 1.4 est beaucoup plus ergonomique concernant la gestion des calques grâce au volet "calques et objets".
Ci-dessous un document est affiché en mode "contour" et j'ai produit la commande Calque/calques et objets.
Ce document comprend trois calques avec une forme dans chaque calque.

Grâce au volet "calques et objets" il est facile de verrouiller, masquer un calque.
Vous voyez ici qu'aucun des trois calques n'est verrouillé ni masqué (on voit les trois formes).

Le code SVG produit par Inkscape (code optimisé)

Comme j'ai choisi pour la sauvegarde "SVG optimisé" j'obtiens un code très succinct et très facile à comprendre pour un humain ayant des notions de SVG.
Notez les trois calques identifiés "layer1, layer2, layer3".

Travail sous NotePad

Pour l'instant il s'agit encore d'un dessin vectoriel statique.
Je vais rajouter du code pour afficher successivement les différents calques et donc créer une animation.
Plutôt que CSS ou JavaScript, je vais animer les calques avec une composante du langage SVG : le SMIL.

Le code SVG amendé

J'ai donc rajouté dans le code de chaque élément G (calque) une balise "set" qui modifie la valeur de la propriété "display" pour ce calque : passe de "none" à "block" donc le calque invisible devient visible.

Le rendu

Le fichier "animation.svg" amendé est inséré dans cette page via la balise IMG !
Observez l'image vectorielle durant au moins 20 secondes.

Successivement affichage d'un carré bleu marine puis d'un rond bleu roi et d'une ellipse bleu azur et le cycle recommence ...
L'animation est volontairement saccadée. Si vous voulez une transition, il faut jouer sur une autre propriété.

Une application cartographique dynamique reposant sur les calques


Le document Inkscape comprend quatre calques. Grâce à un script trois calques sur quatre sont masqués.

Utilisez l'application

Cliquez successivement sur "Relief", "Fleuves", "Rail" et "Routes" et observez.

Donc successivement vous voyez le relief de la France puis les fleuves, puis la France ferrovière et enfin la France routière
Et jamais les quatre cartes en même temps ne se superposent, ce qui serait illisible.

La réalisation de cette application

Il s'agit d'un fichier SVG mais contenant aussi un script.

Le travail sous Inkscape

J'ai créé un nouveau document et j'ai incorporé (donc dans "calque1") une image matricielle correspondant au relief de la France.
Puis j'ai ajouté un nouveau calque et j'ai incorporé une autre image bitmap (celle correspondant aux fleuves).
Puis j'ai rajouté un troisième calque et j'ai incorporé une troisième image matricielle (celle sur les chemins de fer).
Puis j'ai rajouté un quatrième calque et j'ai incorporé la quatrième image (le réseau routier).

Ensuite j'ai produit la commande Edition/éditeur XML afin de modifier les ID des différents calques :

Extrait du code SVG à ce stade (le code du premier calque) :

Le travail sous NotePad

Donc j'ai rajouté le code SVG suivant qui correspond au texte.

Pourquoi y vaut 250 ? Car les valeurs du viewBox sont : "0 0 336 257".
Notez bien que chaque texte a un ID : "b_relief", ... "b_routes".
Il faut aussi rendre l'image responsive. Je modifie donc les valeurs de l'attribut width.

Il faut maintenant rajouter un script afin que sur les quatres calques il y en ait toujours qu'un seul visible et les autes étant masqués.

Le script (sans la balise SCRIPT)

Le script est rajouté en fin de document mais juste avant la balise fermante SVG.

Ce script ne pose pas de difficulté : quatre fonctions anonymes qui se ressemblent beaucoup à un détail près ...
Dans chaque fonction trois calques sont masqués et un seul est affiché.

Insertion de ce fichier SVG dans un page web

Le document Inkscape est un peu lourd : 800 KO mais c'est logique puisqu'il intégre l'équivalent de 4 images matricielles.

Attention ce document contient un script ; il faut donc impérativement l'insérer dans la page web avec la balise OBJECT.
Si vous l'insérez avec IMG le script sera inopérant.