graphical blog 2

12 August, 2005

Integrer du SVG dans une page (X)HTML

Filed under: Inkscape, Tutorial in french, network, vectorial — Administrator @

J’ai réuni les informations concertant les méthodes pour integrer du SVG dans une page (X)HTML que j’avais toujours du mal a trouver, la méthode que l’on trouve habituellement est celle de adobe qui n’est pas recommendé par les standards et est plus limité que la standard.

Il faut cependant penser à adapter le document SVG à la taille désirée dans la page web.

Mauvaise méthode pronée par Adobe : tag <EMBED>

<HTML>
  <body>

    Mon texte
    <embed src="mon_image.svg" width="250" height="50" alt="logo4">

  </body>
</HTML>

Le problème de cette méthode est qu’elle n’est pas standard, et ne sera donc pas forcément reconnu par tous les navigateurs.

Méthode standard pour HTML et XHTML pronée par le W3C : tag <OBJET>

<HTML>
  <body>

    Mon texte

    <object type="image/svg+xml" data="mon_image.svg">
       <img src="mon_image.png" alt="mon image">
    </object >

  </body>
</HTML>

Une image bitmap de remplacement est inséree pour palir à une defficience en SVG du navigateur. C’est généralement plus gros, mais ca permet de dépanner. Cela dit, tous les navigateurs sauf IE devrait d’ici quelques jours disposer de lecteur SVG (le fork gecko 1.8 à eu lieu aujourd’hui, qui annonce la proche sortie de Mozilla Firefox 1.1 qui supportera le SVG par defaut.


bebete poilue

Si vous ne pouvez lire que l’image JPEG, vous pouvez recuperer le fichier svgz ici : http://popolon.org/gblog2/wp-content/upload/bete_poilue.svgz

Enfin, le SVG peut être sauvegarder en SVGZ (format compressé), cela permet de gagner beaucoup de place mais il faut dans ce cas ajouter le type mime sur le serveur.
et que le client supporte cela. C’est le cas pourcet exemple. Si le serveur n’est pas configuré pour, ce qui est le cas dans la majorité des cas, j’avais fait une request feature sur le gestionnaire de bug du projet httpd apache, cela a été refusé, pour cause de manque de clarté dans les specs du W3C.

Il est toujours possible si vous n’avez pas accès au fichier mime-type du serveur de preciser dans votre .htaccess:

  AddType image/svg+xml svgz
  AddEncoding gzip svgz

Normalement le svg doit déjà être géré, sinon vous pouvez également ajouter la ligne suivante :

  AddType image/svg+xml svg

Une autre solution consiste a envoyé l’entête http via un language de script comme en PHP par exemple, en commençant votre script par :

  <?php
  header('Content-type: image/svg+xml');

et si il s’agit d’un SVGZ, ajouter également :

  header('Content-Encoding: gzip');

Penser a bien l’executer en première ligne, avant tout autre HTML ou PHP.

Voir la page SVG:MIMEType du wiki mozilla.org qui m’a servi de source.

Une chose importante la taille du document doit être précisé dans votre fichier SVG :

Sous Inkscape, il suffit à la création du document (ou à la fin, auquel cas vous risquez de devoir redimensionner votre image) :

selectionner la taille en pixel dans pref. du docu.
Menu Fichier => Préférences du Document ([Shift]+[Ctrl]+[D])

Selectionner :

  • Taille du canevas : pérsonnalisé

Et dans le cadre Canevas personnalisé :

  • Unités : px (taille du document donné en pixels)
  • Largeur : Largeur en pixels sur la page web
  • Hauter : Largeur en pixels sur la page web

Evidement pour un document déstiné à l’impression il est plus interressant de donner en unitées métriques (mm par exemple).
De toute facon, cela ne fait en rien perdre les qualitées vectorielles du fichier. J’avourais enfin, que je n’ai pas tenté d’impression de la page pour voir ce que cela donne, ne possédant pas (encore) d’imprimante fonctionnelle.

exporter en mode page
Pour avoir l’équivalent de l’image en png, il suffit de faire Fichier=>Exporter en Bitmap ([Shift]+[Ctrl]+[E]).

  • Selectionner la sortie en mode page
    Normalement la Taille du bitmap donnée par défaut, devrait être correcte.
  • Il est possible de donner la taille désirée dans le champ Largeur
  • onner un nom au fichier dans le champ Nom du fichier
  • Et enfin, Exporter

Je vous conseille ensuite de passer par The Gimp ou Imagemagick pour recompresser le PNG, soit PNG, niveau 9 (sans perte de qualité, ou bien en JPEG.
Si l’image ne comporte pratiquement que des applats, il peut etre plus interressant de passer en mode indexé et de compresser en PNG, que de compresser en JPEG.

3 Comments »

  1. superbe le chien :))

    Comment by yemanja — %AM %393 %e%q, %2005 @ %1:%Aug %p

  2. Je n’ai pas osé appellé cette forme chien, même si ca y ressemble un peu :))

    Comment by Administrator — %PM %841 %e%q, %2005 @ %1:%Aug %p

  3. Merci ça m’a bien dépanné pour le SVGZ… je m’arrachais les cheveux et la doc n’est pas courante sur le net.

    Comment by faf2019 — %AM %445 %e%q, %2007 @ %0:%Nov %p

RSS feed for comments on this post. TrackBack URL

Leave a comment

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

You must read and type the 5 chars within 0..9 and A..F, and submit the form.

  

Oh no, I cannot read this. Please, generate a

Powered by WordPress