« SVG » : différence entre les versions
Aucun résumé des modifications |
|||
(67 versions intermédiaires par 17 utilisateurs non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
== Introduction == | == Introduction == | ||
SVG | SVG signifie '''Scalable Vector Graphics''' (Graphiques Vectoriels Adaptables) et est un standard W3C (en XML), spécifiquement conçu pour être utilisé sur le web. SVG s’intègre bien aux autres formats W3C. | ||
Les graphiques SVG permettent une plus grande souplesse de manipulation que les graphiques bitmaps (dont la qualité d'affichage dépend de la résolution | Les graphiques SVG permettent une plus grande souplesse de manipulation que les graphiques bitmaps (dont la qualité d'affichage dépend de la résolution graphique) car ils sont mathématiquement codés et peuvent être agrandis ou déformés sans aucune perte de qualité. | ||
Voir aussi: | Voir aussi: | ||
* [[Tutoriel SVG statique]] | * [[Tutoriel SVG statique]] | ||
* [[Tutoriel SVG | * [[Tutoriel SVG dynamique avec SMIL]] | ||
* [[Tutoriel SVG | * [[Tutoriel SVG/SMIL animations interactives]] | ||
* [[Tutoriel SVG dynamique avec DOM]] | |||
* [[Tutoriel SVG avec HTML5]] | |||
'''Spécification''': http://www.w3.org/TR/SVG/ | '''Spécification''': http://www.w3.org/TR/SVG/ | ||
Ligne 22 : | Ligne 24 : | ||
* visualisation de contenus (économiques, processus, cartes, etc.) | * visualisation de contenus (économiques, processus, cartes, etc.) | ||
* interface utilisateurs pour certains types d’applications Internet | * interface utilisateurs pour certains types d’applications Internet | ||
* dessins statiques, animés ou même interactifs dans le | * dessins statiques, animés ou même interactifs dans le domaine de l’éducation | ||
* animations multimédia de contenus formalisables (chimie, maths, etc.) | * animations multimédia de contenus formalisables (chimie, maths, etc.) | ||
==Historique== | |||
Dès son apparition, le Web n'a pas cessé d’augmenter sa popularité et d’étendre sa pertinence. Ainsi, différentes extensions du HTML sont apparues. parmi lesquelles celles qui permettent de visualiser le graphisme vectorielle dont l’utilité a été, par ailleurs, rapidement remarquée. Nous trouvons notamment Vector Markup Language (VML) du Microsoft Office, Precision Graphics Markup Language (PGML) de l’Adobe PostScript et du Portable Document Format (PDF), les feuilles de style en cascade (CSS) et d’autres outils. | |||
Par la suite, avec l’apparition du langage [[:en:XML]] en 1998, ces extensions de HMTL susmentionnées ont influencé le développement d’un langage de graphisme vectoriel standard. Ainsi, en 1999, le W3C a élaboré la première spécification du Scalable Vector Graphics (SVG), SVG WG, qui a évolué vers la recommandation en version 1.0 (septembre 2001) puis 1.1 (janvier 2003), avec une seconde édition en août 2011. Cette dernière version « SVG full 1.1 » est une recommandation du W3C actuelle. | |||
Remarquons néanmoins que, dès 2008, [http://www.w3.org/TR/SVGTiny12/ SVG Tiny 1.2] est également recommandé par W3C. En effet, en 2003, à part de la recommandation du SVG full, le groupe du W3C a également présenté celles de SVG Tiny et SVG Basic censées d’être utilisées principalement sur les appareils portables qui n’ont pas les capacités graphiques fortes (SVG Tiny) ou qui implémentent avec difficulté les éléments complexes du SVG full 1.1 tels que, p.ex. l’animation (SVG Basic qui ne contient pas de tels éléments). | |||
La spécification SVG Tiny 1.2 étend les fonctionnalités du SVG 1.1 en y ajoutant notamment une meilleur gestion [http://svground.fr/svg1.2.php du texte et multimédia (la vidéo et le son)]. | |||
En ce qui concerne le développement de la spécification [http://www.w3.org/TR/SVG12/ SVG full 1.2], il a été abandonné en vue de la préparation active du [http://www.w3.org/TR/SVG2/ SVG 2.0]. | |||
==Aires d'application== | |||
=== Visualisation === | |||
Jusqu'à 2011 la niche de marché la plus importante était la visualisation. Prenons par un exemple très simple: Romain Sauvain a créé, pour ce wiki, un module pour la visualisation de liens basé sur SVG. Voir le lien dans la toolbox à votre gauche ou bien lire la courte documentation sur [[:en:Mediawiki SvGViz extension]]. Admirez la beauté de ces liens! Cela marche avec Firefox, Opera ou IE avec un plugin pour SVG. Il y a aussi une visualisation plus "lourde" avec une Applet Java faite par Urs Richle. Bien évidemment il existe bien autres exemples beaucoup plus sophistiqués... | |||
===Echange de Clipart=== | |||
SVG est aussi un langage d'échange très populaire. Par exemple, le seul répositoire potable de clipart, c'est-à-dire la [http://openclipart.org/ Open Clip Art Library], se base sur les Clip Art. Wikipedia suggère aussi très fortement de charger des fichiers graphiques en format SVG. Pour l'instant, ces fichiers sont affichés en tant que bitmap (car jusqu'à en tout cas 2010 IE ne supportait pas SVG). | |||
Google docs mémorise ses fichiers graphiques en SVG et son outil de dessin intégré produit directement des SVG. Pour les utilisateurs de IE, Google a implémenté une librairie JavaScript qui permet d'afficher les SVG. | |||
===HTML 5: graphiques vectoriels intégrés=== | |||
Enfin, HTML 5 a fait du SVG une technologie mainstream. Même Microsoft (IE9) supporte ce format! | |||
===Composants de logiciels=== | |||
Un grand nombre de programmes open source utilise des icônes faites en SVG. | |||
===Multimédia interactifs=== | |||
SVG a à peu près la même puissance que Flash. Cependant, puisqu'il n'y a pas d'outils d'authoring, SVG est beaucoup moins populaire que Flash dans ce domaine. | |||
==Pourquoi SVG ?== | ==Pourquoi SVG ?== | ||
Ligne 39 : | Ligne 76 : | ||
* insertion dans le monde XML/XHTML | * insertion dans le monde XML/XHTML | ||
** génération de SVG avec XSLT/PHP etc. à partir de données XML | ** génération de SVG avec XSLT/PHP etc. à partir de données XML | ||
** | ** intégration dans XHTML, viewers SMIL etc. | ||
** | ** intégration dans HTML5 | ||
** utilisation de CSS | ** utilisation de CSS | ||
** scriptable avec JavaScript via DOM (standard) | ** scriptable avec JavaScript via DOM (standard) | ||
* possibilité de partager du code, de travailler directement avec le format | * possibilité de partager du code, de travailler directement avec le format | ||
* modèle de couleurs sophistiqué, filtres comme dans | * modèle de couleurs sophistiqué, filtres comme dans Photoshop | ||
* une spécification assez claire | * une spécification assez claire | ||
* meilleurs capacités graphiques dans l’ensemble, voir: | * meilleurs capacités graphiques dans l’ensemble, voir: | ||
Ligne 57 : | Ligne 94 : | ||
=== Viewers === | === Viewers === | ||
* | Tous les navigateurs modernes (Mars 2012) offrent un support SVG | ||
* | * HTML5 (SVG est compris) | ||
* XHTML + SVG | |||
* SVG (fichier stand-alone) | |||
Certaines fonctionalités peuvent manquer, IE9/10 ne sait pas faire du SMIL. | |||
=== Editeurs === | === Editeurs === | ||
* Prenez Inkscape (gratuit) pour faire des dessins statiques | * Prenez [http://www.inkscape.org/ Inkscape] (gratuit) pour faire des dessins statiques | ||
* | * [http://www.kiyut.com/products/sketsa/ Sketsa SVG Graphics Editor] by Kiyut, $89 Payware, Java 1.7+ based, demo and Java Webstart version available. Gratuit pendant plusieurs semaines. Meilleur éditeur pour créer du SVG pur (Jan 2014) | ||
* | * [https://www.calligra.org/karbon/ Karbon] Logiciel issu de la suite Calligra Suite. Il est possible d'importer des fichiers: ODG, SVG, WPG, WMF,EPS,PS et exporter en: ODG, SVG, PNG, PDF, WMF. | ||
* [http://www. | * [http://www.adobe.com/mena_en/products/illustrator.html Adobe Illustrator] | ||
* [http://www.coreldraw.com/rw/ CorelDRAW] Avec un prix relativement accessible, ce logiciel est le plus proche concurrent de adobe illustrator et offre une plus grande simplicité d'utilisation. Il est notamment utilisé pour la création des personnages de South Park! | |||
* [http://www.openoffice.org/fr/ OpenOffice] | |||
=== Editeurs en ligne === | |||
Marchent bien, mais ont des fonctionnalités limitées | |||
* [http://code.google.com/p/svg-edit/ SVG Edit] (le plus populaire) | |||
* [https://boxy-svg.com/index.html Boxy] (Nouveau 2016, peut-être le meilleur). A utiliser avec Chrome. | |||
* [http://www.drawsvg.org/ DrawSvg.org] | |||
* [http://www.flamingtext.com/imagebot/editor Imagebot] | |||
* [http://pilatinfo.org/dessin_loc/draw.svg Pilat drawing tool] | |||
=== Convertisseurs === | |||
* La plupart des outils de dessin peuvent exporter en SVG, par exemple Illustrator, Open Office "Draw" | |||
* [http://delineate.sourceforge.net/ Delineate] pour convertir des images bitmap en vectoriel au format SVG. On obtient le code source avec un clic droit sur l'image au format SVG obtenue. (pas testé récemment!) | |||
=== Simplificateurs === | |||
* [https://jakearchibald.github.io/svgomg/ SVGMG], basé sur [https://github.com/svg/svgo SVGO] (logiciel à installer sur sa propre machine, nécessite note). | |||
** Sous Ubuntu: | |||
:: sudo apt install npm | |||
:: npm install -g svgo | |||
** Exemple: | |||
:: svgo dessin.svg dessin-reduit.svg --pretty | |||
=== Images SVG libres de droit === | |||
Depuis la fermeture du site OpenClipart en juillet 2019, il est parfois fastidieux de trouver des images au format SVG libres de droit. Cependant, il existe un autre site qui propose de telles images libres de droit gratuites (et en français) : [https://svgsilh.com/fr/ SVG SILH]. Les images SVG de ce site sont simples et on peut en modifier la couleur à volonté. | |||
=== SVG avec un éditeur XML === | === SVG avec un éditeur XML === | ||
Si vous désirez éditer SVG | Si vous désirez éditer SVG manuellement, il est conseillé d’installer la DTD dans votre éditeur XML si ce n'est pas fait. | ||
* SVG 1.0 et 1.1. sont | * SVG 1.0 et 1.1. sont inclus dans Exchanger lite | ||
Pour certains éditeurs, il faut d'abord trouver la DTD et qui est à la fin de la spécification officielle et ensuite installer: | Pour certains éditeurs, il faut d'abord trouver la DTD et qui est à la fin de la spécification officielle et ensuite installer: | ||
Ligne 80 : | Ligne 149 : | ||
Exemple: Installation d’une DTD dans Xemacs: | Exemple: Installation d’une DTD dans Xemacs: | ||
* Il faut copier le fichier avec la DTD | * Il faut copier le fichier avec la DTD quelque part sur votre système (de préférence au même endroit que le CATALOG). | ||
* Ensuite éditer le fichier ''...XEmacs/xemacs-packages/etc/psgml-dts/CATALOG'' qui se trouve dans l’installation Xemacs. | * Ensuite éditer le fichier ''...XEmacs/xemacs-packages/etc/psgml-dts/CATALOG'' qui se trouve dans l’installation Xemacs. | ||
* Ajouter une ligne qui associe un identificateur public avec un fichier | * Ajouter une ligne qui associe un identificateur public avec un fichier | ||
Ligne 102 : | Ligne 171 : | ||
<nowiki>*.svgz image/svg+xml</nowiki> | <nowiki>*.svgz image/svg+xml</nowiki> | ||
== | == Utilisation de SVG == | ||
Attention aux espaces de nommage (namespaces) ! Ils doivent présent dans HTML5 et des pages SVG pures: <code>xmlns="http://www.w3.org/2000/svg"</code> | |||
=== Dans HTML 5 === | |||
<source lang="XML"> | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>HTML5 SVG demo</title> | |||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> | |||
</head> | |||
<body> | |||
<h1>HTML5 SVG Demo</h1> | |||
A nice green circle: | |||
<svg id="circle" height="200" xmlns="http://www.w3.org/2000/svg"> | |||
<circle id="greencircle" cx="30" cy="30" r="30" fill="green" /> | |||
</svg> | |||
<hr> | |||
<address>Created by DKS. This is free code</address> | |||
</html> | |||
</source> | |||
* Code source: [http://tecfa.unige.ch/guides/svg/ex/html5/circle.html circle.html]. | |||
On peut aussi importer du SVG avec diverses balises HTML5, notamment <code>embed</code>. | |||
Lire plus dans [[:en:Using SVG with HTML5 tutorial]] | |||
=== Structure d’une page SVG autonome === | |||
Une page SVG valide doit contenir une entête XML ainsi qu'une declaration namespace pour la balise racine "svg". Le DocType est à option. | |||
Voici un exemple SVG 1.0 | Voici un exemple SVG 1.0 | ||
Ligne 148 : | Ligne 249 : | ||
Voir: [http://www.w3.org/TR/2002/CR-SVG11-20020430/images/struct/StandAlone01.svg View this example as SVG] | Voir: [http://www.w3.org/TR/2002/CR-SVG11-20020430/images/struct/StandAlone01.svg View this example as SVG] | ||
=== Importation et groupement === | |||
=== | SVG permet d'importer d'autres images SVG. Exemple | ||
<source lang="XML"> | |||
<svg id="circle" height="60" width="60" | |||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > | |||
<image x="0" y="0" height="60" width="60" xlink:href="huge-red-circle.svg" /> | |||
</svg> | |||
</source> | |||
Il est également possible de grouper des entités SVG en les encadrant par des balises. Un groupe peut être transformé (translation, échelle, rotation) | |||
<source lang="xml"> | <source lang="xml"> | ||
<g></g> | <g></g> | ||
</source> | </source> | ||
Cette fonctionalité est utile pour regrouper du code importé. Plus de détails sont disponibles dans le [[Tutoriel SVG statique]] | |||
== Autre usage du SVG<ref>1[https://la-cascade.io/utiliser-svg/ Autre usage de dessin SVG]</ref>== | |||
=== Utiliser un dessin SVG comme une <img> === | |||
On peut utiliser un dessin SVG existant directement dans une balise <img> comme suit: | |||
<source lang="xml"> | <source lang="xml"> | ||
<img src="smiley.svg" height="64” width=”45 ”alt="Mon smiley"/> | |||
</source> | </source> | ||
Pour modifier la taille de notre SVG, il suffit de changer le width et height. | |||
=== Utiliser le dessin SVG comme une image arrière plan === | |||
C’est simple, tout d’abord, vous devez créer une classe “logo” dans html: | |||
<source lang="xml"> | <source lang="xml"> | ||
<a href="/" class="logo"Mon smiley</a> | |||
</source> | </source> | ||
Puis, utiliser le css pour placer notre SVG comme une image arrière plan comme suit: | |||
<source lang="xml"> | |||
.logo { | |||
display: block; | |||
text-indent: -9999px; | |||
width: 42px; | |||
height:64px | |||
background: url(smiley.svg); | |||
background-size: auto auto;} | |||
</source> | |||
=== Utiliser SVG comme un <object> === | |||
< | |||
Une autre possibilité d’usage de dessin SVG est de l'utiliser comme un objet dans HTML, en créant un lien vers le dessin SVG en utilisant la balise <objet> comme suit: | |||
<source lang="xml"> | |||
<object type="image/svg+xml" data=”smiley.svg" class="logo"> | |||
</object> | |||
</source> | </source> | ||
Puis manipuler le dessin dans CSS comme suit: | |||
<source lang="xml"> | |||
.no-svg .logo { | |||
width: 150px; | |||
height: 135px; | |||
background-image: url(smiley.jpg); | |||
background-size: auto auto;} | |||
</source> | |||
== Liens == | == Liens == | ||
Spécifications: | |||
* http://www.w3.org/TR/SVG/ | * http://www.w3.org/TR/SVG/ | ||
Ligne 217 : | Ligne 326 : | ||
* [[:en:SVG links|SVG links]] (EduTechWiki Anglais) | * [[:en:SVG links|SVG links]] (EduTechWiki Anglais) | ||
* [http://www.w3.org/Graphics/SVG/WG/wiki/Implementations Liste des outils qui offrent le support SVG élaborée par W3C] | |||
* [http://www.w3.org/Graphics/SVG/ W3C’s SVG work group website] | |||
* [http://www.w3.org/Graphics/SVG/WG/wiki/Secret_Origin_of_SVG W3C -Secret Origin of SVG] | |||
* [http://fr.wikipedia.org/wiki/Scalable_Vector_Graphics SVG dans le Wikipedia] | |||
* [https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Introduction SVG Tutorial on developer.mozilla.org] | |||
* [http://svground.fr/svg1.2.php SVGround, Les nouveautés de SVG 1.2] | |||
* [http://www.w3schools.com/svg/default.asp](Site internet de formation de W3Schools.com) | |||
[[Category: Technologies web]] | [[Category: Technologies web]] | ||
[[Category: XML]] | [[Category: XML]] | ||
[[Category: SVG]] | [[Category: SVG]] | ||
[[Catégorie:Ressources STIC]] |
Dernière version du 22 août 2024 à 12:58
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Introduction
SVG signifie Scalable Vector Graphics (Graphiques Vectoriels Adaptables) et est un standard W3C (en XML), spécifiquement conçu pour être utilisé sur le web. SVG s’intègre bien aux autres formats W3C.
Les graphiques SVG permettent une plus grande souplesse de manipulation que les graphiques bitmaps (dont la qualité d'affichage dépend de la résolution graphique) car ils sont mathématiquement codés et peuvent être agrandis ou déformés sans aucune perte de qualité.
Voir aussi:
- Tutoriel SVG statique
- Tutoriel SVG dynamique avec SMIL
- Tutoriel SVG/SMIL animations interactives
- Tutoriel SVG dynamique avec DOM
- Tutoriel SVG avec HTML5
Spécification: http://www.w3.org/TR/SVG/
De la spécification: "SVG est un langage de description de graphiques bi-dimensionnels en XML. SVG admet trois types d’objets graphiques : des contours graphiques vectoriels (par exemple, des tracés consistant en lignes droites et courbes), des images et du texte. Les objets graphiques peuvent être regroupés, stylés, transformés et composés dans des objets précédemment rendus. L’ensemble de fonctions comprend des transformations imbriquées, des tracés de rognage, des masques basés sur la couche alpha et des objets de gabarit.
Les dessins SVG peuvent être interactifs et dynamiques. On peut définir et déclencher des animations, soit déclarativement (i.e., en incorporant les éléments d’animation SVG dans un contenu SVG), soit via un script.
Utilisations les plus intéressantes (actuellement):
- visualisation de contenus (économiques, processus, cartes, etc.)
- interface utilisateurs pour certains types d’applications Internet
- dessins statiques, animés ou même interactifs dans le domaine de l’éducation
- animations multimédia de contenus formalisables (chimie, maths, etc.)
Historique
Dès son apparition, le Web n'a pas cessé d’augmenter sa popularité et d’étendre sa pertinence. Ainsi, différentes extensions du HTML sont apparues. parmi lesquelles celles qui permettent de visualiser le graphisme vectorielle dont l’utilité a été, par ailleurs, rapidement remarquée. Nous trouvons notamment Vector Markup Language (VML) du Microsoft Office, Precision Graphics Markup Language (PGML) de l’Adobe PostScript et du Portable Document Format (PDF), les feuilles de style en cascade (CSS) et d’autres outils.
Par la suite, avec l’apparition du langage en:XML en 1998, ces extensions de HMTL susmentionnées ont influencé le développement d’un langage de graphisme vectoriel standard. Ainsi, en 1999, le W3C a élaboré la première spécification du Scalable Vector Graphics (SVG), SVG WG, qui a évolué vers la recommandation en version 1.0 (septembre 2001) puis 1.1 (janvier 2003), avec une seconde édition en août 2011. Cette dernière version « SVG full 1.1 » est une recommandation du W3C actuelle.
Remarquons néanmoins que, dès 2008, SVG Tiny 1.2 est également recommandé par W3C. En effet, en 2003, à part de la recommandation du SVG full, le groupe du W3C a également présenté celles de SVG Tiny et SVG Basic censées d’être utilisées principalement sur les appareils portables qui n’ont pas les capacités graphiques fortes (SVG Tiny) ou qui implémentent avec difficulté les éléments complexes du SVG full 1.1 tels que, p.ex. l’animation (SVG Basic qui ne contient pas de tels éléments).
La spécification SVG Tiny 1.2 étend les fonctionnalités du SVG 1.1 en y ajoutant notamment une meilleur gestion du texte et multimédia (la vidéo et le son).
En ce qui concerne le développement de la spécification SVG full 1.2, il a été abandonné en vue de la préparation active du SVG 2.0.
Aires d'application
Visualisation
Jusqu'à 2011 la niche de marché la plus importante était la visualisation. Prenons par un exemple très simple: Romain Sauvain a créé, pour ce wiki, un module pour la visualisation de liens basé sur SVG. Voir le lien dans la toolbox à votre gauche ou bien lire la courte documentation sur en:Mediawiki SvGViz extension. Admirez la beauté de ces liens! Cela marche avec Firefox, Opera ou IE avec un plugin pour SVG. Il y a aussi une visualisation plus "lourde" avec une Applet Java faite par Urs Richle. Bien évidemment il existe bien autres exemples beaucoup plus sophistiqués...
Echange de Clipart
SVG est aussi un langage d'échange très populaire. Par exemple, le seul répositoire potable de clipart, c'est-à-dire la Open Clip Art Library, se base sur les Clip Art. Wikipedia suggère aussi très fortement de charger des fichiers graphiques en format SVG. Pour l'instant, ces fichiers sont affichés en tant que bitmap (car jusqu'à en tout cas 2010 IE ne supportait pas SVG).
Google docs mémorise ses fichiers graphiques en SVG et son outil de dessin intégré produit directement des SVG. Pour les utilisateurs de IE, Google a implémenté une librairie JavaScript qui permet d'afficher les SVG.
HTML 5: graphiques vectoriels intégrés
Enfin, HTML 5 a fait du SVG une technologie mainstream. Même Microsoft (IE9) supporte ce format!
Composants de logiciels
Un grand nombre de programmes open source utilise des icônes faites en SVG.
Multimédia interactifs
SVG a à peu près la même puissance que Flash. Cependant, puisqu'il n'y a pas d'outils d'authoring, SVG est beaucoup moins populaire que Flash dans ce domaine.
Pourquoi SVG ?
Avantages des images vectorielles
- rendering correct dans multiples média et à différentes tailles (adaptation)
- possibilité d’appliquer des styles (adaptation 2)
- possibilité d’indexer le texte qui fait partie du graphisme
- taille de l’image (après compression en tout cas)
- facilités d’édition: les éléments sont des objets, hiérarchies, etc.
Avantages particuliers de SVG (par rapport à Flash et similaires)
- insertion dans le monde XML/XHTML
- génération de SVG avec XSLT/PHP etc. à partir de données XML
- intégration dans XHTML, viewers SMIL etc.
- intégration dans HTML5
- utilisation de CSS
- scriptable avec JavaScript via DOM (standard)
- possibilité de partager du code, de travailler directement avec le format
- modèle de couleurs sophistiqué, filtres comme dans Photoshop
- une spécification assez claire
- meilleurs capacités graphiques dans l’ensemble, voir:
- http://www.carto.net/papers/svg/comparison_flash_svg.html
Outils
Validation en ligne
Viewers
Tous les navigateurs modernes (Mars 2012) offrent un support SVG
- HTML5 (SVG est compris)
- XHTML + SVG
- SVG (fichier stand-alone)
Certaines fonctionalités peuvent manquer, IE9/10 ne sait pas faire du SMIL.
Editeurs
- Prenez Inkscape (gratuit) pour faire des dessins statiques
- Sketsa SVG Graphics Editor by Kiyut, $89 Payware, Java 1.7+ based, demo and Java Webstart version available. Gratuit pendant plusieurs semaines. Meilleur éditeur pour créer du SVG pur (Jan 2014)
- Karbon Logiciel issu de la suite Calligra Suite. Il est possible d'importer des fichiers: ODG, SVG, WPG, WMF,EPS,PS et exporter en: ODG, SVG, PNG, PDF, WMF.
- Adobe Illustrator
- CorelDRAW Avec un prix relativement accessible, ce logiciel est le plus proche concurrent de adobe illustrator et offre une plus grande simplicité d'utilisation. Il est notamment utilisé pour la création des personnages de South Park!
- OpenOffice
Editeurs en ligne
Marchent bien, mais ont des fonctionnalités limitées
- SVG Edit (le plus populaire)
- Boxy (Nouveau 2016, peut-être le meilleur). A utiliser avec Chrome.
- DrawSvg.org
- Imagebot
- Pilat drawing tool
Convertisseurs
- La plupart des outils de dessin peuvent exporter en SVG, par exemple Illustrator, Open Office "Draw"
- Delineate pour convertir des images bitmap en vectoriel au format SVG. On obtient le code source avec un clic droit sur l'image au format SVG obtenue. (pas testé récemment!)
Simplificateurs
- sudo apt install npm
- npm install -g svgo
- Exemple:
- svgo dessin.svg dessin-reduit.svg --pretty
Images SVG libres de droit
Depuis la fermeture du site OpenClipart en juillet 2019, il est parfois fastidieux de trouver des images au format SVG libres de droit. Cependant, il existe un autre site qui propose de telles images libres de droit gratuites (et en français) : SVG SILH. Les images SVG de ce site sont simples et on peut en modifier la couleur à volonté.
SVG avec un éditeur XML
Si vous désirez éditer SVG manuellement, il est conseillé d’installer la DTD dans votre éditeur XML si ce n'est pas fait.
- SVG 1.0 et 1.1. sont inclus dans Exchanger lite
Pour certains éditeurs, il faut d'abord trouver la DTD et qui est à la fin de la spécification officielle et ensuite installer:
Exemple: Installation d’une DTD dans Xemacs:
- Il faut copier le fichier avec la DTD quelque part sur votre système (de préférence au même endroit que le CATALOG).
- Ensuite éditer le fichier ...XEmacs/xemacs-packages/etc/psgml-dts/CATALOG qui se trouve dans l’installation Xemacs.
- Ajouter une ligne qui associe un identificateur public avec un fichier
Exemple Unix: PUBLIC "-//W3C//DTD SVG 1.0//EN" /web/lib/xml/dtd/svg10.dtd Exemple Dos: PUBLIC "-//W3C//DTD SVG 1.0//EN" svg10.dtd
- N’oubliez pas de dire à Emacs que *.svg est associé à XML, éditez le fichier ~/.xemacs/init.el et ajoutez:
(setq auto-mode-alist (append ’(("\.svg" . xml-mode)) auto-mode-alist))
Note: Votre home (~) sous windows est qq. part dans c:\Documents and Settings\xxxx\. Alternativement on peut aussi insérer cette instruction dans XEmacs\site-packages\lisp\site-start.el
Mime-types que votre serveur doit définir (!)
- Lorsque votre navigateur n’affiche pas un fichier svg provenant d’un serveur, il faut configurer les serveur web avec les mime-types suivants.
*.svg image/svg+xml
*.svgz image/svg+xml
Utilisation de SVG
Attention aux espaces de nommage (namespaces) ! Ils doivent présent dans HTML5 et des pages SVG pures: xmlns="http://www.w3.org/2000/svg"
Dans HTML 5
<!DOCTYPE html>
<html>
<head>
<title>HTML5 SVG demo</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<h1>HTML5 SVG Demo</h1>
A nice green circle:
<svg id="circle" height="200" xmlns="http://www.w3.org/2000/svg">
<circle id="greencircle" cx="30" cy="30" r="30" fill="green" />
</svg>
<hr>
<address>Created by DKS. This is free code</address>
</html>
- Code source: circle.html.
On peut aussi importer du SVG avec diverses balises HTML5, notamment embed
.
Lire plus dans en:Using SVG with HTML5 tutorial
Structure d’une page SVG autonome
Une page SVG valide doit contenir une entête XML ainsi qu'une declaration namespace pour la balise racine "svg". Le DocType est à option.
Voici un exemple SVG 1.0
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<!-- un petit rectangle avec des coins arroundis -->
<rect x="50" y="50" rx="5" ry="5" width="300" height="100"
style="fill:#CCCCFF;stroke:#000099"/>
<!-- un texte au meme endroit -->
<text x="55" y="90" style="stroke:#000099;fill:#000099;font-size:24;">
HELLO cher visiteur
</text>
</svg>
Voir: hello-svg.svg
Voici un exemple SVG 1.1
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="5cm" height="4cm" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Four separate rectangles
</desc>
<rect x="0.5cm" y="0.5cm" width="2cm" height="1cm"/>
<rect x="0.5cm" y="2cm" width="1cm" height="1.5cm"/>
<rect x="3cm" y="0.5cm" width="1.5cm" height="2cm"/>
<rect x="3.5cm" y="3cm" width="1cm" height="0.5cm"/>
<!-- Show outline of canvas using 'rect' element -->
<rect x=".01cm" y=".01cm" width="4.98cm" height="3.98cm"
fill="none" stroke="blue" stroke-width=".02cm" />
</svg>
Voir: View this example as SVG
Importation et groupement
SVG permet d'importer d'autres images SVG. Exemple
<svg id="circle" height="60" width="60"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<image x="0" y="0" height="60" width="60" xlink:href="huge-red-circle.svg" />
</svg>
Il est également possible de grouper des entités SVG en les encadrant par des balises. Un groupe peut être transformé (translation, échelle, rotation)
<g></g>
Cette fonctionalité est utile pour regrouper du code importé. Plus de détails sont disponibles dans le Tutoriel SVG statique
Autre usage du SVG[1]
Utiliser un dessin SVG comme une <img>
On peut utiliser un dessin SVG existant directement dans une balise <img> comme suit:
<img src="smiley.svg" height="64” width=”45 ”alt="Mon smiley"/>
Pour modifier la taille de notre SVG, il suffit de changer le width et height.
Utiliser le dessin SVG comme une image arrière plan
C’est simple, tout d’abord, vous devez créer une classe “logo” dans html:
<a href="/" class="logo"Mon smiley</a>
Puis, utiliser le css pour placer notre SVG comme une image arrière plan comme suit:
.logo {
display: block;
text-indent: -9999px;
width: 42px;
height:64px
background: url(smiley.svg);
background-size: auto auto;}
Utiliser SVG comme un <object>
Une autre possibilité d’usage de dessin SVG est de l'utiliser comme un objet dans HTML, en créant un lien vers le dessin SVG en utilisant la balise <objet> comme suit:
<object type="image/svg+xml" data=”smiley.svg" class="logo">
</object>
Puis manipuler le dessin dans CSS comme suit:
.no-svg .logo {
width: 150px;
height: 135px;
background-image: url(smiley.jpg);
background-size: auto auto;}
Liens
Spécifications:
- http://www.w3.org/TR/SVG/
- http://www.yoyodesign.org/doc/w3c/svg1/index.html (SVG 1.0 en français)
Ressources:
- SVG links (EduTechWiki Anglais)
- Liste des outils qui offrent le support SVG élaborée par W3C
- W3C’s SVG work group website
- W3C -Secret Origin of SVG
- SVG dans le Wikipedia
- SVG Tutorial on developer.mozilla.org
- SVGround, Les nouveautés de SVG 1.2
- [1](Site internet de formation de W3Schools.com)